본문 바로가기

JAVA/JAVA Programming

[JAVA] 어노테이션을 선언할 때 사용하는 메타어노테이션들

반응형

출처 : 자바의신 VOL.1 기초 문법편





어노테이션을 선언할 때 사용하는 메타어노테이션들



 JDK에 이미 포함되어 있는 어노테이션 중 어노테이션 선언시 사용하는 메타 어노테이션에는 @Target, @Retention, @Documented, @Inherited의 4가지가 있다.






■ JDK에 선언되어 있는 어노테이션


 ● @Override : Override한다는 것을 명시적으로 선언할 때 사용한다.

 ● @Deprecated : 더 이상 사용하지 않아 Depecated 되었다는 것을 명시적으로 선언할 때 사용한다.

 ● @SupressWarnings : 컴파일러의 경골르 무시하도록 하려고 할 때 사용한다.






Target 어노테이션에서 사용하는 ElementType의 종류


요소타입

대상

 CONSTRUCTOR

 생성자 선언시

 FIELD

 enum 상수를 포함한 필드(field)값 선언시

 LOCAL_VARIABLE

 지역 변수 선언시

 METHOD

 메소드 선언시

 PACKAGE

 패키지 선언시

 PARAMETER

 매개 변수 선언시

 TYPE

 클래스, 인터페이스, enum 등 선언시


 ● 두 개 이상의 ElementType을 선언할 경우에는 다음과 같이 배열을 선언할 때처럼 중괄호로 묶어 사용함.


@Target({ElementType.METHOD, ElementType.Type})





Retention 어노테이션에 사용하는 RetentionPolicy의 종류

요소 타입

대상

 SOURCE

 어노테이션 정보가 컴파일시 사라짐

 CLASS

 클래스 파일에 있는 어노테이션 정보가 컴파일러에 의해서 참조 가능함.

 하지만, 가상 머신(Virtual Machine)에서는 사라짐

 RUNTIME

 실행시 어노테이션 정보가 가상 머신에 의해서 참조 가능


반응형