출처 : 자바의신 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 |
실행시 어노테이션 정보가 가상 머신에 의해서 참조 가능 |
'JAVA > JAVA Programming' 카테고리의 다른 글
[JAVA] 계산을 쉽게 도와주는 연산자들 (0) | 2015.03.05 |
---|---|
[JAVA] 예외를 처리하자 (0) | 2015.02.26 |
[JAVA] 자주 사용하게 되는 상속 (0) | 2015.02.26 |
[JAVA] 메소드의 선언 (0) | 2015.02.26 |
[JAVA] 자바를 구성하는 클래스, 인터페이스, 추상클래스 (0) | 2015.02.25 |