SupportedAnnotationTypes — 지원 어노테이션 타입 지정 애너테이션
SupportedAnnotationTypes — 지원 어노테이션 타입 지정 애너테이션
@SupportedAnnotationTypes는 어노테이션 프로세서가 어떤 어노테이션 인터페이스를 지원하는지를 나타내는 데 쓰는 애너테이션이에요. Processor.getSupportedAnnotationTypes() 메서드는 AbstractProcessor.getSupportedAnnotationTypes()가 하듯이 이 애너테이션의 값으로부터 결과를 구성할 수 있어요.
값으로는 문법(grammar)에 맞는 문자열만 사용해야 해요. 지원하는 어노테이션 타입의 이름이나 와일드카드 등을 지정할 수 있어요.
본문
선언은 다음과 같아요.
@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.