(어노테이션)
@Retention
-> 얼마나 오랫동안 어노테이션 정보가 유지되는지 설정할 수 있다.
SOURCE : 어노테이션 정보가 컴파일시 사라짐, 바이트코드에서는 존재하지 않음
예) @Override, @SuppressWarnings
CLASS : 클래스 파일에 존재하고 컴파일러에 의해 사용가능, 가상머신 (런타임)에서는 사라짐
RUNTIME : 실행시 어노테이션 정보가 가상머신에 의해서 참조가능, 자바리플렉션에 의해 사용가능
=========================================================
@Target
자신이 만든 어노테이션이 사용되게 될 자바 요소를 지정할수 있다.
예)
@Target({ElementType.METHOD})
public @interface MyAnnotation {
String value();
}
==========================================================
@Inherited
@Inherited 어노테이션은 이 어노테이션을 사용한 슈퍼클래스를 상속한 서브클래스에서도 해당 어노테이션을 갖도록 한다.
예)
@Inherited
public @Interface MyAnnotation {
}
@MyAnnotation
public class MySuperClass {....}
public class MySubClass extends MySuperClass {....}
=======================================================
@Documented
이 어노테이션은 지정된 대상의 JavaDoc에 이 어노테이션의 존재를 표기하도록 지정
@Documented
public @interface MyAnnotation {
}
댓글
댓글 쓰기