메타애너테이션
: 애너테이션을 위한 애너테이션
: java.lang.annotation 패키지에 포함
@Target(ElementType.METHOD)
@Retention(RetiontionPolicy.SOURCE)
public @interface Override {} // 컴파일러를 위해 오버라이딩 제대로 했는지 체크하는 애너테이션(Override).
// 이기 때문에 컴파일러까지만 존재하면 됨, 그 후는 사라짐
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}
@Repeatable(TODOs.class) // ToDo 애너테이션을 여러번 반복해서 쓸 수 있게 한다.
@interface ToDo {
String value();
}
@ToDo("delete test codes.")
@ToDo("override inherited methods")
class MyClass {
}
@interface ToDos { // 여러개의 ToDo애너테이션을 담을 컨테이너 애너테이션 ToDos
ToDo[] value(); // ToDo 애너테이션 배열타입의 요소를 선언. 이름이 반드시 value이어야 함
}
-> 많이 사용 x