(어노테이션)


@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 {

}

댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬