ElementType — 애너테이션 적용 위치 열거형
ElementType — 애너테이션 적용 위치 열거형
ElementType는 Java 프로그램에서 애너테이션이 나타날 수 있는 구문적 위치를 단순한 분류로 제공하는 열거형(enum)입니다. 이 상수들은 @Target 메타 애너테이션에서 특정 타입의 애너테이션을 어디에 쓸 수 있는지 지정하는 데 사용됩니다.
본문
애너테이션이 나타날 수 있는 구문적 위치는 선언에 적용되는 선언 컨텍스트(declaration context)와 선언·표현식에 쓰인 타입에 적용되는 타입 컨텍스트(type context)로 나뉩니다. ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE, TYPE_PARAMETER 상수는 JLS 9.6.4.1의 선언 컨텍스트에 해당합니다.
public enum ElementType extends Enum<ElementType>
열거 상수
TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,
ANNOTATION_TYPE, PACKAGE, TYPE_PARAMETER, TYPE_USE, MODULE, RECORD_COMPONENT
TYPE— 클래스·인터페이스·열거형 선언 등 타입 선언에 적용합니다.FIELD— 필드 선언에 적용합니다.METHOD,PARAMETER,CONSTRUCTOR— 각각 메서드, 매개변수, 생성자에 적용합니다.TYPE_USE— 타입 컨텍스트 및 일부 선언 컨텍스트에 적용합니다.RECORD_COMPONENT— 레코드 구성 요소(record component)에 적용합니다.
예를 들어 @Target(ElementType.FIELD)로 메타 애너테이션된 인터페이스의 애너테이션은 필드 선언의 수정자로만 쓸 수 있습니다. TYPE_USE는 타입 검사기 설계자들의 편의를 위해 클래스·인터페이스 선언과 타입 매개변수 선언도 포함합니다.
메서드
public static ElementType[] values()
public static ElementType valueOf(String name)