[java] 애노테이션 추상체와 요소

자바 프로그래밍 언어는 애노테이션(Annotation)이라는 메타데이터를 제공하여 코드에 대한 정보를 나타내는 기능을 제공합니다. 애노테이션은 클래스, 메서드, 변수, 매개변수 등과 같은 요소에 메타데이터를 추가하고, 이 정보를 컴파일러나 런타임 환경에서 활용할 수 있게 해줍니다.

애노테이션의 구조

애노테이션은 애노테이션 타입애노테이션 요소로 구성됩니다. 애노테이션 타입은 @interface 키워드를 사용하여 정의하며, 애노테이션 요소는 애노테이션 타입 내에서 정의됩니다.

public @interface MyAnnotation {
    String value();
}

위의 예시에서 MyAnnotation은 애노테이션 타입이며, value는 애노테이션 요소입니다.

애노테이션의 사용

애노테이션은 다음과 같이 사용할 수 있습니다.

@MyAnnotation(value="example")
public class MyClass {
    // 클래스 내용
}

애노테이션 요소의 속성

애노테이션 요소는 값을 반환하는 메서드와 비슷한 구조를 가지고 있습니다. 애노테이션 요소의 반환 유형은 기본 데이터 타입, String, 열거 타입, 애노테이션, Class 등이 될 수 있습니다. 또한, default 키워드를 사용하여 기본 값을 지정할 수 있습니다.

public @interface MyAnnotation {
    String value() default "default value";
}

애노테이션 요소의 제약

애노테이션 요소는 일반적인 메서드와 달리 매개변수를 가질 수 없으며, 예외를 선언할 수 없습니다. 또한, 애노테이션 요소는 배열을 반환할 수 있지만 제네릭 배열은 허용되지 않습니다.

결론

애노테이션은 자바 프로그래밍 언어의 강력한 기능 중 하나로, 다양한 곳에서 활용됩니다. 애노테이션을 효과적으로 활용하여 코드를 명확하게 표현하고, 컴파일러나 런타임 환경에서 유용한 정보를 제공할 수 있습니다.

자세한 내용은 자바 공식 문서를 참고하시기 바랍니다.