TypeElement — 타입(클래스·인터페이스) 요소 인터페이스
TypeElement — 타입(클래스·인터페이스) 요소 인터페이스
TypeElement는 클래스 또는 인터페이스 프로그램 요소를 나타내는 인터페이스예요. 클래스나 인터페이스와 그 멤버에 대한 정보에 접근할 수 있게 해요. enum 클래스는 클래스의 특수한 종류, record 클래스도 클래스의 특수한 종류이고, 어노테이션 인터페이스는 인터페이스의 특수한 종류예요.
TypeElement가 클래스나 인터페이스 요소를 나타내는 반면, DeclaredType는 클래스나 인터페이스 타입을 나타내며 후자는 전자의 사용(또는 호출)이에요. 이 구분은 제네릭 타입에서 가장 뚜렷한데, 단일 요소가 타입의 한 가족 전체를 정의할 수 있어요. 예를 들어 요소 java.util.Set은 매개변수화 타입 java.util.Set<String>, java.util.Set<Number>(그 외 다수)와 원시 타입 java.util.Set에 대응해요.
본문
선언은 다음과 같아요.
public interface TypeElement extends Element, Parameterizable, QualifiedNameable
이 인터페이스의 각 메서드가 요소 목록을 반환할 때는 프로그램 정보의 기반 소스에 자연스러운 순서로 반환해요. 예를 들어 기반이 자바 소스 코드라면 소스 코드 순서대로 반환돼요.
주요 메서드는 다음과 같아요.
| Modifier and Type | Method | 설명 |
|---|---|---|
TypeMirror |
asType() |
이 클래스·인터페이스 요소가 정의하는 타입을 반환해요. |
List<? extends Element> |
getEnclosedElements() |
필드·메서드·생성자·레코드 컴포넌트·멤버 클래스·인터페이스를 반환해요. |
List<? extends TypeMirror> |
getInterfaces() |
구현/확장하는 인터페이스 타입들을 반환해요. |
NestingKind |
getNestingKind() |
이 요소의 중첩 종류를 반환해요. |
Name |
getQualifiedName() |
정규화된 이름을 반환해요. |
TypeMirror |
getSuperclass() |
직접 슈퍼클래스를 반환해요. |
List<? extends TypeParameterElement> |
getTypeParameters() |
형식 타입 매개변수들을 선언 순서대로 반환해요. |
default List<? extends TypeMirror> |
getPermittedSubclasses() |
허용 서브클래스들을 선언 순서대로 반환해요. |
default List<? extends RecordComponentElement> |
getRecordComponents() |
레코드 컴포넌트들을 선언 순서대로 반환해요. |
default boolean |
isUnnamed() |
이름 없는 클래스면 true, 아니면 false(프리뷰). |
어노테이션 처리에서는 도구 실행 초기 입력, 프로세서가 쓴 소스·클래스 파일, 또는 구성된 환경에서 만들어질 수 있어요. Since: 1.6.