Spec-Zone.ru › OpenJDK 21

Интерфейс 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()
Возвращает формальные параметры типа этого элемента класса или интерфейса в порядке объявления.
default boolean isUnnamed()
Предварительный просмотр.
Возвращает true, если это безымянный класс, и false в противном случае.

Методы, объявленные в интерфейсе javax.lang.model.element.Element

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

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

asType

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

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

Определено в:
asType в интерфейсе Element
Возвращает:
тип, определённый этим элементом типа
См. также:
  • 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(javax.lang.model.element.TypeElement)

getNestingKind

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

getQualifiedName

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

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

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

getSimpleName

Name getSimpleName()
Возвращает простое имя этого элемента класса или интерфейса. Для анонимного класса возвращается пустое имя. Для безымянногоПРЕВЬЮ класса возвращается имя, соответствующее имени базового файла, за вычетом расширения.
Определено в:
getSimpleName в интерфейсе Element
Возвращает:
простое имя этого класса или интерфейса, пустое имя для анонимного класса
См. также:
  • PackageElement.getSimpleName()
  • ExecutableElement.getSimpleName()
  • getSimpleName()
  • VariableElement.getSimpleName()
  • ModuleElement.getSimpleName()
  • RecordComponentElement.getSimpleName()

isUnnamed

default boolean isUnnamed()
isUnnamed — это превью-API платформы Java, доступное для рефлексии.
Возможно, функции превью будут удалены в будущей версии или будут добавлены в качестве постоянных функций платформы Java.
Возвращает true, если это безымянный класс, и false в противном случае.
Требования к реализации:
По умолчанию этот метод возвращает false.
Возвращает:
true если это безымянный класс, и false в противном случае
См. Спецификацию языка Java:
7.3 Единицы компиляции
С:
21

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()
Возвращает разрешенные классы этого элемента класса или интерфейса в порядке объявления.
Требования к реализации:
По умолчанию эта реализация возвращает пустой и неизменяемый список.
Возвращает:
разрешенные классы или пустой список, если их нет
С:
17

getEnclosingElement

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

© 1993, 2023, 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/21/docs/api/java.compiler/javax/lang/model/element/TypeElement.html

Spec-Zone.ru

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