Spec-Zone.ru › OpenJDK 24

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

Методы, объявленные в интерфейсе javax.lang.model.element.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(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 Полные квалифицированные имена и канонические имена
См. также:
  • Elements.getBinaryName(javax.lang.model.element.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(javax.lang.model.element.Element)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.compiler/javax/lang/model/element/TypeElement.html

Spec-Zone.ru

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