Spec-Zone.ru › OpenJDK 25

Интерфейс TypeElement

Все суперинтерфейсы:
AnnotatedConstruct, Element, Parameterizable, QualifiedNameable
public interface TypeElement extends Element, Parameterizable, QualifiedNameable
Представляет программный элемент класса или интерфейса. Предоставляет доступ к сведениям о классе или интерфейсе и его членах. Обратите внимание, что перечисление и запись являются специализированными видами классов, а аннотационный интерфейс — специализированным видом интерфейса.

В то время как TypeElement представляет элемент класса или интерфейса, DeclaredType представляет тип класса или интерфейса, то есть использование (или вызов) первого. Это различие наиболее заметно для обобщенных типов, для которых один элемент может определять целое семейство типов. Например, элемент java.util.Set соответствует параметризованным типам java.util.Set<String> и java.util.Set<Number> (и многим другим), а также типу без параметров java.util.Set.

Каждый метод этого интерфейса, возвращающий список элементов, возвращает их в порядке, естественном для источника сведений о программе. Например, если исходным источником сведений является исходный код Java, элементы возвращаются в порядке их появления в исходном коде.

Примечание к API:
Представленный класс или интерфейс может иметь представление ссылки (исходный код или исполняемый файл). Несколько классов и интерфейсов могут использовать одну и ту же конструкцию, лежащую в основе представления ссылки. Например, несколько классов и интерфейсов могут быть объявлены в одном исходном файле, в том числе, помимо прочего:
  • класс или интерфейс верхнего уровня и вспомогательные классы и интерфейсы
  • класс или интерфейс верхнего уровня и вложенные классы и интерфейсы в нем

В контексте обработки аннотаций элемент типа может быть:

  • создан на основе первоначальных входных данных для запуска инструмента
  • создан на основе исходного кода или файлов классов, записанных процессором
  • запрошен в настроенной среде
Начиная с:
1.6
См. также:
  • DeclaredType

Краткое описание методов

Модификатор и тип Метод Описание
TypeMirror asType()
Возвращает тип, определяемый этим элементом класса или интерфейса, а для элемента, представляющего обобщенный тип, возвращает прототипный тип.
List<? extends Element> getEnclosedElements()
Возвращает поля, методы, конструкторы, компоненты записи, а также классы и интерфейсы-члены, непосредственно объявленные в этом классе или интерфейсе.
Element getEnclosingElement()
Возвращает пакет класса или интерфейса верхнего уровня, а для вложенного класса или интерфейса — непосредственно охватывающий его в лексическом смысле элемент.
List<? extends TypeMirror> getInterfaces()
Возвращает типы интерфейсов, непосредственно реализуемых этим классом или расширяемых этим интерфейсом.
NestingKind getNestingKind()
Возвращает вид вложенности этого элемента класса или интерфейса.
default List<? extends TypeMirror> getPermittedSubclasses()
Возвращает разрешенные классы этого элемента класса или интерфейса в порядке объявления.
Name getQualifiedName()
Возвращает полное имя этого элемента класса или интерфейса.
default List<? extends RecordComponentElement> getRecordComponents()
Возвращает компоненты записи этого элемента класса или интерфейса в порядке объявления.
Name getSimpleName()
Возвращает простое имя этого элемента класса или интерфейса.
TypeMirror getSuperclass()
Возвращает непосредственный суперкласс этого элемента класса или интерфейса.
List<? extends TypeParameterElement> getTypeParameters()
Возвращает формальные параметры типа этого элемента класса или интерфейса в порядке объявления.

Методы, объявленные в интерфейсе Element

accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getKind, getModifiers, hashCode

Подробное описание методов

asType

TypeMirror asType()
Возвращает тип, определяемый этим элементом класса или интерфейса, а для элемента, представляющего обобщенный тип, возвращает прототипный тип.

Обобщенный элемент определяет семейство типов, а не только один тип. Если это обобщенный элемент, возвращается прототипный тип, в котором для элемента используется вызов с переменными типа, соответствующими его собственным формальным параметрам типа. Например, для элемента обобщенного класса C<N extends Number> возвращается параметризованный тип C<N>. В противном случае, для необобщенного класса или интерфейса зеркало прототипного типа соответствует использованию типа. Ни один из компонентов прототипного типа не аннотирован, включая сам прототипный тип.

Определено в:
asType в интерфейсе Element
Примечание к API:
Вспомогательный интерфейс Types содержит более общие методы для получения полного набора типов, определяемых элементом.
Возвращает:
тип, определяемый этим элементом типа
См. также:
  • Types.asMemberOf(DeclaredType, Element)
  • Types.getDeclaredType(TypeElement, TypeMirror...)

getEnclosedElements

List<? extends Element> getEnclosedElements()
Возвращает поля, методы, конструкторы, компоненты записи, а также классы и интерфейсы-члены, непосредственно объявленные в этом классе или интерфейсе. Сюда входят любые предписанные элементы, например (неявный) конструктор по умолчанию, а также неявные методы values и valueOf перечисления.
Определено в:
getEnclosedElements в интерфейсе Element
Примечание к API:
В соответствии с общими требованиями к точности и требуемым для этого интерфейса поведением сортировки список включенных элементов возвращается в естественном порядке для исходного источника сведений о классе или интерфейсе. Например, если сведения о классе или интерфейсе получены из исходного файла, элементы возвращаются в порядке их появления в исходном коде. (Однако в этом случае порядок неявно объявленных элементов, таких как конструкторы по умолчанию, не определен.)
Возвращает:
включенные элементы в надлежащем порядке или пустой список, если их нет
См. Спецификацию языка Java:
8.8.9 Конструктор по умолчанию
8.9.3 Члены перечислений
8.10.3 Члены записей
См. также:
  • getEnclosedElements()
  • PackageElement.getEnclosedElements()
  • ModuleElement.getEnclosedElements()
  • Elements.getAllMembers(TypeElement)

getNestingKind

NestingKind getNestingKind()
Возвращает вид вложенности этого элемента класса или интерфейса.
Возвращает:
вид вложенности этого элемента класса или интерфейса

getQualifiedName

Name getQualifiedName()
Возвращает полное имя этого элемента класса или интерфейса. Точнее, возвращается каноническое имя. Для локальных и анонимных классов, у которых нет канонических имен, возвращается пустое имя.

Имя обобщенного класса или интерфейса не включает ссылки на его формальные параметры типа. Например, полное имя интерфейса java.util.Set<E> — "java.util.Set". Для вложенных классов и интерфейсов в качестве разделителя используется ".", как в "java.util.Map.Entry".

Определено в:
getQualifiedName в интерфейсе QualifiedNameable
Возвращает:
полное имя этого класса или интерфейса либо пустое имя, если его нет
См. Спецификацию языка Java:
6.7 Полные и канонические имена
См. также:
  • Elements.getBinaryName(TypeElement)

getSimpleName

Name getSimpleName()
Возвращает простое имя этого элемента класса или интерфейса. Для анонимного класса возвращается пустое имя.
Определено в:
getSimpleName в интерфейсе Element
Возвращает:
простое имя этого класса или интерфейса; для анонимного класса — пустое имя
См. также:
  • PackageElement.getSimpleName()
  • ExecutableElement.getSimpleName()
  • getSimpleName()
  • VariableElement.getSimpleName()
  • ModuleElement.getSimpleName()
  • RecordComponentElement.getSimpleName()

getSuperclass

TypeMirror getSuperclass()
Возвращает непосредственный суперкласс этого элемента класса или интерфейса. Если этот элемент класса или интерфейса представляет интерфейс или класс java.lang.Object, возвращается NoType с видом NONE.
Возвращает:
непосредственный суперкласс или NoType, если его нет

getInterfaces

List<? extends TypeMirror> getInterfaces()
Возвращает типы интерфейсов, непосредственно реализуемых этим классом или расширяемых этим интерфейсом.
Возвращает:
типы интерфейсов, непосредственно реализуемых этим классом или расширяемых этим интерфейсом, либо пустой список, если таких типов нет

getTypeParameters

List<? extends TypeParameterElement> getTypeParameters()
Возвращает формальные параметры типа этого элемента класса или интерфейса в порядке объявления.
Определено в:
getTypeParameters в интерфейсе Parameterizable
Возвращает:
формальные параметры типа или пустой список, если их нет

getRecordComponents

default List<? extends RecordComponentElement> getRecordComponents()
Возвращает компоненты записи этого элемента класса или интерфейса в порядке объявления.
Требования к реализации:
Реализации этого метода по умолчанию возвращают пустой неизменяемый список.
Возвращает:
компоненты записи или пустой список, если их нет
Начиная с:
16

getPermittedSubclasses

default List<? extends TypeMirror> getPermittedSubclasses()
Возвращает разрешенные классы этого элемента класса или интерфейса в порядке объявления. Обратите внимание, что для интерфейса могут быть возвращены разрешенные подклассы и подинтерфейсы.
Требования к реализации:
Реализации этого метода по умолчанию возвращают пустой неизменяемый список.
Возвращает:
разрешенные классы или пустой список, если их нет
См. Спецификацию языка Java:
8.1.6 Разрешенные непосредственные подклассы
9.1.4 Разрешенные непосредственные подклассы и подинтерфейсы
Начиная с:
17

getEnclosingElement

Element getEnclosingElement()
Возвращает пакет класса или интерфейса верхнего уровня, а для вложенного класса или интерфейса — непосредственно охватывающий его в лексическом смысле элемент.
Определено в:
getEnclosingElement в интерфейсе Element
Возвращает:
пакет класса или интерфейса верхнего уровня либо непосредственно охватывающий в лексическом смысле элемент для вложенного класса или интерфейса
См. также:
  • Elements.getPackageOf(Element)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком корпорации Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/element/TypeElement.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API