JAVA
어노테이션 (Annotation)
패잇
2023. 9. 18. 18:28
어노테이션은 메타데이터(metadata)라고 볼 수 있다.
애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보.
용도
- 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 (대표적인 예 : @Override)
- 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공
어노테이션 타입 정의와 적용
public @interface AnnotationName {
타입 elementName() [default 값];
}
- @interface를 사용하여 어노테이션을 정의한다.
- 어노테이션은 엘리먼트(element)를 멤버로 가질 수 있다.
각 엘리먼트는 타입, 이름으로 구성되며 디폴트 값을 가질 수 있다.
엘리먼트의 이름 뒤에는 ()를 붙여야 한다.
public @interface AnnotationName{
String elementName1();
int elementName2() default 5;
}
이렇게 정의한 어노테이션을 코드에서 적용할 때는 다음과 같이 사용한다.
@AnnotationName(elementName1="값", elementName2=3);
또는
@AnnotationName(elementName1="값");
어노테이션은 기본 엘리먼트인 value를 가질 수 있다.
public @interface AnnotationName{
String value(); // 기본 엘리먼트 선언
int elementName() default 5;
}
Value 엘리먼트를 가진 어노테이션을 코드에서 적용할 때는 다음과 같이 값만 기술할 수 있다.
이 값은 기본 엘리먼트인 value 값으로 자동 설정된다.
@AnnotationName("값")
@AnnotationName(value="값", elementName=3); // value 엘리먼트와 다른 엘리먼트를 동시에 준 경우