1. 어노테이션 정의 방법
2. @retention
3. @target
4. @documented
5. 어노테이션 프로세서
1. 어노테이션 정의 방법
- 어노테이션은 자바에서 기본적으로 제공하는 Built-in Annotaion과 커스텀 어노테이션을 만들 수 있게 제공되는 Meta Annotation이 존재한다.
public @interface MyAnnotation {
...
}
- 어노테이션의 필드로는 기본형, String, enum, 어노테이션, Class만 가능하다.
- 배열 선언도 가능하다.
- default 값을 지정할 수 있다. int number() default 1;
- () 안에 매개변수 선언은 불가능하다.
2. @Retention
- 어노테이션이 유지되는 기간을 지정하는데 사용된다.
- SOURCE : 소스파일에만 존재, 클래스 파일에는 존재하지 않는다.
- CLASS : 클래스 파일에 존재하고, 실행 시 사용 불가능하다. (default)
- RUNTIME : 클래스 파일에 존재하고, 실행 시 사용 가능하다.
- @Retention(RetentionPolicy.RUNTIME)
3. @Target
- 어노테이션이 적용 가능한 대상을 지정할 때 사용한다.
- 여러 개 지정하고 싶다면 [] 배열을 사용한다.
- ANNOTATION_TYPE : 어노테이션
- CONSTRUCTOR : 생성자
- FIELD : 필드 (멤버 변수, enum 상수)
- LOCAL_VARIABLE : 지역 변수
- METHOD : 메소드
- PACKAGE : 패키지
- TYPE_PARAMETER : 타입 매개변수
- TYPE_USE : 타입이 사용되는 곳
- @Target(ElementType.ANNOTATION_TYPE)
4. @Documented
- 어노테이션 정보가 javadoc으로 작성된 문성에 포함되도록 하는 메타 어노테이션이다.
- @Override와 @SuppressWarnings를 제외한 모든 기본 어노테이션에 붙어있다.
- 해당 어노테이션을 javadoc에 표기할 지 여부를 지정하는 어노테이션이다.
- @Documented
5. 어노테이션 프로세서
'Programming > JAVA' 카테고리의 다른 글
Te Java(6) - 스케줄링 알고리즘 구현 (0) | 2023.11.10 |
---|---|
Te JAVA (6) - Enum (0) | 2023.11.10 |
Te JAVA (5) - 멀티스레드 프로그래밍 (0) | 2023.11.01 |
Te JAVA (5) - 예외 처리 (1) | 2023.11.01 |
Te JAVA (5) - 인터페이스 (1) | 2023.10.31 |