SupportedAnnotationTypes — 지원 어노테이션 타입 지정 애너테이션

SupportedAnnotationTypes — 지원 어노테이션 타입 지정 애너테이션

@SupportedAnnotationTypes는 어노테이션 프로세서가 어떤 어노테이션 인터페이스를 지원하는지를 나타내는 데 쓰는 애너테이션이에요. Processor.getSupportedAnnotationTypes() 메서드는 AbstractProcessor.getSupportedAnnotationTypes()가 하듯이 이 애너테이션의 값으로부터 결과를 구성할 수 있어요.

값으로는 문법(grammar)에 맞는 문자열만 사용해야 해요. 지원하는 어노테이션 타입의 이름이나 와일드카드 등을 지정할 수 있어요.

출처: Java API Reference

본문

선언은 다음과 같아요.

@Documented
@Target(TYPE)
@Retention(RUNTIME)
public @interface SupportedAnnotationTypes

요소(element)로는 문자열 배열 String[] value()가 있어요. 이 값에는 지원하는 어노테이션 인터페이스의 정규화된 이름을 나열해요. 예를 들어:

@SupportedAnnotationTypes({"com.example.MyAnnotation", "com.example.*"})
public class MyProcessor extends AbstractProcessor {
    // ...
}
  • @Target(TYPE): 이 애너테이션은 타입(클래스·인터페이스) 선언에만 적용할 수 있어요.
  • @Retention(RUNTIME): 런타임까지 유지되어 리플렉션으로 읽을 수 있어요.
  • @Documented: javadoc에 포함돼요.

일반적으로 AbstractProcessor를 상속한 프로세서 클래스에 붙여, 도구가 getSupportedAnnotationTypes()를 호출했을 때 그 값을 반환하게 해요. Since: 1.6.

더 알아보기 (Learn more)

Java 공식 API