TypeElement — 타입(클래스·인터페이스) 요소 인터페이스

TypeElement — 타입(클래스·인터페이스) 요소 인터페이스

TypeElement는 클래스 또는 인터페이스 프로그램 요소를 나타내는 인터페이스예요. 클래스나 인터페이스와 그 멤버에 대한 정보에 접근할 수 있게 해요. enum 클래스는 클래스의 특수한 종류, record 클래스도 클래스의 특수한 종류이고, 어노테이션 인터페이스는 인터페이스의 특수한 종류예요.

TypeElement가 클래스나 인터페이스 요소를 나타내는 반면, DeclaredType는 클래스나 인터페이스 타입을 나타내며 후자는 전자의 사용(또는 호출)이에요. 이 구분은 제네릭 타입에서 가장 뚜렷한데, 단일 요소가 타입의 한 가족 전체를 정의할 수 있어요. 예를 들어 요소 java.util.Set은 매개변수화 타입 java.util.Set<String>, java.util.Set<Number>(그 외 다수)와 원시 타입 java.util.Set에 대응해요.

출처: Java API Reference

본문

선언은 다음과 같아요.

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.

더 알아보기 (Learn more)

Java 공식 API