메타 애너테이션
: 애너테이션을 위한 애너테이션
: 애너테이션의 적용대상이나 유지기간등을 지정하는데 사용
@Target
: 애너테이션이 적용가능한 대상을 지정하는데 사용
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
String[] value();
}
* 적용대상의 종류는 p.711 표 참고
@Retention
: 애너테이션이 유지되는 기감을 지정하는데 사용
유지 정책 | 의미 |
SOURCE | 소스 파일에만 존재. 클래스파일에는 존재하지 않음 |
CLASS | 클래스 파일에 존재. 실행시에 사용불가. 기본값 |
RUNTIME | 클래스 파일에 존재. 실행시에 사용가능 |
예시)
@Target(ElementType.METHOD)
@Retention(RententionPolicy.SOURCE)
public @interface Override {}
@Documented
: 애너테이션에 대한 정보가 javadoc으로 작성한 문서에 포함되도록 한다.
: @override, @SuppressWarnings 를 제외하고는 모두 이 메타 애너테이션이 붙어 있음
@Inherited
: 이 애너테이션을 조상클래스에 붙이면, 자손 클래스도 이 애너테이션이 붙은 것과 같이 인식
@Repeatable
: 이 애너테이션은 여러 번 붙일 수 있다.
@ToDo("delete test codes.")
@ToDo("override inherited methods")
class Myclass {
...
}
@Native
: 네이티브 메서드에 의해 참조되는 '상수 필드'에 붙이는 애너테이션
: 네이티브 메서드란? JVM이 설치된 OS의 메서드, 선언부만 정의하고 구현은 하지 않음.
'Language > java' 카테고리의 다른 글
[Java] 쓰레드_프로세스와 쓰레드 (0) | 2022.08.02 |
---|---|
[Java] 애너테이션_애너테이션 타입 정의하기 (0) | 2022.08.02 |
[Java] 애너테이션 (0) | 2022.08.02 |
[Java] 열거형_열거형의 이해 (0) | 2022.07.30 |
[Java] 열거형_열거형에 멤버 추가하기 (0) | 2022.07.30 |
댓글