메타 애너테이션 - '애너테이션을 위한 애너테이션'
애너테이션의 적용대상이나 유지기간 등을 지정하는데 사용한다.
@Target
애너테이션이 적용 가능한 대상을 지정하는데 사용
@Retention
애너테이션이 유지되는 기간을 지정하는데 사용
컴파일러를 직접 작성할 때만 필요하다.
@Document
애너테이션에 대한 정보를 javadoc으로 작성한 문서에 포함시킨다.
@Inherited
애너테이션이 자손 클래스에 상속되도록 한다.
만약 @Inherited가 붙은 클래스를 상속받으면, 자손 클래스는 부모클래스의
애너테이션이 같이 적용된다.
등등...
새로운 애너테이션 만들기
@interface Annotation_name {
타입 요소이름();
...
}
애너테이션 내에 선언된 메소드를 애너테이션 요소라고 한다.
반환값이 있고 매개변수는 없는 추상 메소드의 형태이며, 상속을 통해 구현하지 않아도 된다.
이때 요소의 타입은 기본형, String, enum, 애너테이션, Class 만 허용된다.
매개변수와 예외를 선언할 수 없으며, 요소의 타입에 타입 매개변수를 사용할 수 없다.
또한 새로 만든 애너테이션을 적용할 때는 그 요소들의 값을 모두 지정해주어야 한다.
하지만 요소에 기본값이 있을 경우 값을 지정하지 않으면 기본값이 들어간다.
'JAVA' 카테고리의 다른 글
컬렉션 프레임워크 (0) | 2024.06.21 |
---|---|
인터페이스 (0) | 2022.10.03 |
추상메소드와 추상클래스 (0) | 2022.10.03 |
지네릭스(1) (2) | 2022.09.02 |
다형성 - 참조변수 형변환 (0) | 2022.08.15 |
super와 super() (0) | 2022.08.11 |