Интерфейс 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> (и многим другим), а также типу raw java.util.Set.
Каждый метод этого интерфейса, возвращающий список элементов, возвращает их в естественном порядке, соответствующем исходному источнику сведений о программе. Например, если исходным источником сведений является исходный код Java, элементы возвращаются в порядке их следования в исходном коде.
- Примечание API:
- Для представленного класса или интерфейса может существовать ссылочное представление (исходный код или исполняемый файл). Несколько классов и интерфейсов могут использовать одну и ту же конструкцию, лежащую в основе ссылочного представления. Например, несколько классов и интерфейсов могут быть объявлены в одном исходном файле, включая, помимо прочего:
- класс или интерфейс верхнего уровня и вспомогательные классы и интерфейсы
- класс или интерфейс верхнего уровня и вложенные классы и интерфейсы внутри него
В контексте обработки аннотаций элемент типа может быть:
- создан на основе исходных входных данных запуска инструмента
- создан на основе исходного кода или файлов классов, записанных процессором
- запрошен в настроенной среде
- См. Спецификацию языка Java:
- 8.1 Объявления классов
8.5 Объявления классов и интерфейсов-членов
8.9 Классы перечислений
8.10 Классы-записи
9.1 Объявления интерфейсов
9.5 Объявления классов и интерфейсов-членов
9.6 Интерфейсы аннотаций
- Начиная с:
- 1.6
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
TypeMirror |
asType() |
Возвращает тип, определяемый этим элементом класса или интерфейса, и возвращает прототипный тип для элемента, представляющего обобщённый тип. |
List |
getEnclosedElements() |
Возвращает поля, методы, конструкторы, компоненты записи, а также классы и интерфейсы-члены, непосредственно объявленные в этом классе или интерфейсе. |
Element |
getEnclosingElement() |
Возвращает пакет класса или интерфейса верхнего уровня и возвращает непосредственно охватывающий в лексическом смысле элемент для вложенного класса или интерфейса. |
List |
getInterfaces() |
Возвращает типы интерфейсов, непосредственно реализуемые этим классом или расширяемые этим интерфейсом. |
NestingKind |
getNestingKind() |
Возвращает вид вложенности этого элемента класса или интерфейса. |
default List |
getPermittedSubclasses() |
Возвращает разрешённые классы этого элемента класса или интерфейса в порядке объявления. |
Name |
getQualifiedName() |
Возвращает полное имя этого элемента класса или интерфейса. |
default List |
getRecordComponents() |
Возвращает компоненты записи этого элемента класса или интерфейса в порядке объявления. |
Name |
getSimpleName() |
Возвращает простое имя этого элемента класса или интерфейса. |
TypeMirror |
getSuperclass() |
Возвращает непосредственный суперкласс этого элемента класса или интерфейса. |
List |
getTypeParameters() |
Возвращает формальные параметры типа этого элемента класса или интерфейса в порядке объявления. |
Методы, объявленные в интерфейсе Element
accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getKind, getModifiers, hashCode | Модификатор и тип | Метод | Описание |
|---|---|---|
<R, |
accept |
Применяет посетитель к этому элементу. |
boolean |
equals |
Возвращает true, если аргумент представляет тот же элемент, что и this, и false в противном случае. |
<A extends Annotation> |
getAnnotation |
Возвращает аннотацию этого конструкта указанного типа, если такая аннотация присутствует; иначе возвращает null. |
List |
getAnnotationMirrors() |
Возвращает аннотации, непосредственно присутствующие в этом конструкте. |
<A extends Annotation> |
getAnnotationsByType |
Возвращает аннотации указанного типа, связанные с этим конструктом. |
ElementKind |
getKind() |
Возвращает kind этого элемента. |
Set |
getModifiers() |
Возвращает модификаторы этого элемента, за исключением аннотаций. |
int |
hashCode() |
Соответствует общему контракту Object.hashCode. |
Подробное описание методов
asType
TypeMirror asType()
Обобщённый элемент определяет семейство типов, а не только один тип. Если это обобщённый элемент, возвращается прототипный тип, вызванный для переменных типа, соответствующих его собственным формальным параметрам типа. Например, для элемента обобщённого класса C<N extends Number> возвращается параметризованный тип C<N>. В противном случае, для необобщённого класса или интерфейса зеркало прототипного типа соответствует использованию типа. Ни один из компонентов прототипного типа не аннотирован, включая сам прототипный тип.
getEnclosedElements
List<? extends Element> getEnclosedElements()
values и valueOf класса перечисления.- Определено в:
-
getEnclosedElementsв интерфейсеElement - Примечание API:
- В качестве частного случая общих требований к точности и порядка, предусмотренного этим интерфейсом, список вложенных элементов возвращается в естественном порядке, соответствующем исходному источнику сведений о классе или интерфейсе. Например, если сведения о классе или интерфейсе получены из исходного файла, элементы возвращаются в порядке их следования в исходном коде. (Однако в этом случае порядок неявно объявленных элементов, таких как конструкторы по умолчанию, не определён.)
- Возвращает:
- вложенные элементы в надлежащем порядке или пустой список, если их нет
- См. Спецификацию языка Java:
- 8.8.9 Конструктор по умолчанию
8.9.3 Члены перечисления
8.10.3 Члены записи
- См. также:
getNestingKind
NestingKind getNestingKind()
- Возвращает:
- вид вложенности этого элемента класса или интерфейса
getQualifiedName
Name getQualifiedName()
Имя обобщённого класса или интерфейса не содержит ссылок на его формальные параметры типа. Например, полное имя интерфейса java.util.Set<E> — "java.util.Set". Для вложенных классов и интерфейсов в качестве разделителя используется ".", например: "java.util.Map.Entry".
- Определено в:
-
getQualifiedNameв интерфейсеQualifiedNameable - Возвращает:
- полное имя этого класса или интерфейса либо пустое имя, если его нет
- См. Спецификацию языка Java:
- 6.7 Полные и канонические имена
- См. также:
getSimpleName
Name getSimpleName()
- Определено в:
-
getSimpleNameв интерфейсеElement - Возвращает:
- простое имя этого класса или интерфейса; для анонимного класса — пустое имя
- См. также:
getSuperclass
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 - Возвращает:
- пакет класса или интерфейса верхнего уровня либо непосредственно охватывающий в лексическом смысле элемент для вложенного класса или интерфейса
- См. также:
© 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.