ElementKind — 요소 종류 열거 클래스

ElementKind — 요소 종류 열거 클래스

ElementKind는 요소(element)의 종류(kind)를 나타내는 열거 클래스예요. Element.getKind()가 반환하는 값으로, 패키지·클래스·메서드·필드 같은 언어 구조를 판별하는 데 쓰여요.

이 열거에 미래 자바 언어 구조를 수용하기 위해 추가 종류가 늘어날 수 있어요. 참고로 java.lang.Enum, Serializable, Comparable<ElementKind>, Constable을 구현해요.

출처: Java API Reference

본문

주요 열거 상수는 PACKAGE, MODULE, TYPE, CLASS, ENUM, RECORD, INTERFACE, ANNOTATION_TYPE, FIELD, ENUM_CONSTANT, METHOD, CONSTRUCTOR, STATIC_INIT, INSTANCE_INIT, PARAMETER, LOCAL_VARIABLE, EXCEPTION_PARAMETER, RESOURCE_VARIABLE, BINDING_VARIABLE 등이에요. 선언은 다음과 같아요.

public enum ElementKind extends Enum<ElementKind>

주요 메서드는 다음과 같아요.

Modifier and Type Method 설명
boolean isClass() CLASS·ENUM·RECORD 같은 클래스 종류면 true.
boolean isDeclaredType() 클래스나 인터페이스 같은 선언 타입 종류면 true.
boolean isExecutable() METHOD·CONSTRUCTOR·STATIC_INIT·INSTANCE_INIT 같은 실행 가능 종류면 true.
boolean isField() FIELD·ENUM_CONSTANT 같은 필드 종류면 true.
boolean isInitializer() STATIC_INIT·INSTANCE_INIT 같은 초기화자 종류면 true.
boolean isInterface() INTERFACE·ANNOTATION_TYPE 같은 인터페이스 종류면 true.
boolean isVariable() ENUM_CONSTANT, FIELD, PARAMETER, LOCAL_VARIABLE, EXCEPTION_PARAMETER, RESOURCE_VARIABLE, BINDING_VARIABLE를 포함한 변수 종류면 true.
static ElementKind valueOf(String name) 지정된 이름의 열거 상수를 반환해요.
static ElementKind[] values() 선언 순서대로 열거 상수 배열을 반환해요.

isClass(), isField(), isInterface() 같은 편의 메서드는 계층적 종류(예: ENUMRECORD도 클래스)를 한 번에 판별할 때 유용해요. Since: 1.6.

더 알아보기 (Learn more)

Java 공식 API