Spec-Zone.ru › OpenJDK 25

Интерфейс TypeMirror

Все суперинтерфейсы:
AnnotatedConstruct
Все известные подинтерфейсы:
ArrayType, DeclaredType, ErrorType, ExecutableType, IntersectionType, NoType, NullType, PrimitiveType, ReferenceType, TypeVariable, UnionType, WildcardType
public interface TypeMirror extends AnnotatedConstruct
Представляет тип в языке программирования Java. Типы включают примитивные типы, объявленные типы (типы классов и интерфейсов), типы массивов, переменные типов и тип null. Также представлены аргументы типа с подстановочными знаками, типы сигнатур и возвращаемых значений исполняемых элементов, а также псевдотипы, соответствующие пакетам, модулям и ключевому слову void.

Для сравнения типов следует использовать вспомогательные методы в Types. Не гарантируется, что какой-либо конкретный тип всегда будет представлен одним и тем же объектом.

Для выполнения операций на основе класса объекта TypeMirror используйте либо посетитель, либо результат метода getKind(). Использование instanceof не обязательно является надежным способом определения фактического класса объекта в этой иерархии моделей, поскольку реализация может использовать один объект, реализующий несколько подинтерфейсов TypeMirror.

См. Спецификацию языка Java:
4.1 Виды типов и значений
4.2 Примитивные типы и значения
4.3 Ссылочные типы и значения
4.4 Переменные типов
4.5 Параметризованные типы
4.8 Сырые типы
4.9 Пересекающиеся типы
10.1 Типы массивов
Начиная с:
1.6
См. также:
  • Element
  • Types

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

Модификатор и тип Метод Описание
<R,P> R accept(TypeVisitor<R,P> v, P p)
Применяет посетитель к этому типу.
boolean equals(Object obj)
Соответствует общему контракту Object.equals.
<A extends Annotation>
A
getAnnotation(Class<A> annotationType)
Возвращает аннотацию этой конструкции указанного типа, если такая аннотация присутствует, в противном случае — null.
List<? extends AnnotationMirror> getAnnotationMirrors()
Возвращает аннотации, непосредственно присутствующие в этой конструкции.
<A extends Annotation>
A[]
getAnnotationsByType(Class<A> annotationType)
Возвращает аннотации указанного типа, связанные с этой конструкцией.
TypeKind getKind()
Возвращает kind этого типа.
int hashCode()
Соответствует общему контракту Object.hashCode.
String toString()
Возвращает информативное строковое представление этого типа.

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

getKind

TypeKind getKind()
Возвращает kind этого типа.
  • Видом примитивного типа является один из видов, для которых TypeKind.isPrimitive() возвращает true.
  • Видом типа null является NULL.
  • Видом типа массива является ARRAY.
  • Видом объявленного типа является DECLARED.
  • Видом типа ошибки является ERROR.
  • Видом переменной типа является TYPEVAR.
  • Видом типа с подстановочным знаком является WILDCARD.
  • Видом исполняемого типа является EXECUTABLE.
  • Видом псевдотипа является один из следующих: VOID, PACKAGE, MODULE или NONE.
  • Видом объединенного типа является UNION.
  • Видом пересекающегося типа является INTERSECTION.
Возвращает:
kind этого типа

equals

boolean equals(Object obj)
Соответствует общему контракту Object.equals. Однако этот метод не указывает, представляют ли два типа один и тот же тип. Для семантического сравнения типов на равенство следует использовать Types.isSameType(TypeMirror, TypeMirror). Результаты t1.equals(t2) и Types.isSameType(t1, t2) могут различаться.
Переопределяет:
equals в классе Object
Параметры:
obj - объект, сравниваемый с этим типом
Возвращает:
true, если указанный объект равен этому объекту
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Соответствует общему контракту Object.hashCode.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого объекта
См. также:
  • equals(Object)

toString

String toString()
Возвращает информативное строковое представление этого типа. По возможности строка должна иметь форму, подходящую для представления этого типа в исходном коде. Все имена, включенные в результат, по возможности указываются с квалификаторами.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого типа

getAnnotationMirrors

List<? extends AnnotationMirror> getAnnotationMirrors()
Возвращает аннотации, непосредственно присутствующие в этой конструкции.

Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями типов.

Определено в:
getAnnotationMirrors в интерфейсе AnnotatedConstruct
Возвращает:
аннотации, непосредственно присутствующие в этой конструкции; пустой список, если таких аннотаций нет
Начиная с:
1.8

getAnnotation

<A extends Annotation> A getAnnotation(Class<A> annotationType)
Возвращает аннотацию этой конструкции указанного типа, если такая аннотация присутствует, в противном случае — null.

Возвращаемая этим методом аннотация может содержать элемент, значение которого имеет тип Class. Это значение нельзя вернуть напрямую: необходимая для поиска и загрузки класса информация (например, используемый загрузчик классов) недоступна, а сам класс может быть вообще не загружаемым. Попытка прочитать объект Class путем вызова соответствующего метода возвращаемой аннотации приведет к возникновению MirroredTypeException, из которого можно извлечь соответствующий TypeMirror. Аналогично попытка прочитать элемент со значением типа Class[] приведет к возникновению MirroredTypesException.

Примечание: Этот метод отличается от других методов в этом и связанных интерфейсах. Он работает с данными отражения во время выполнения — представлениями интерфейсов аннотаций, загруженными в данный момент в виртуальную машину, — а не с представлениями, определенными и используемыми в этих интерфейсах. Следовательно, вызовы методов возвращаемого объекта аннотации могут привести к возникновению многих исключений, которые могут возникнуть при вызове методов объекта аннотации, возвращенного основным механизмом отражения. Этот метод предназначен для вызывающего кода, написанного для работы с известным фиксированным набором интерфейсов аннотаций.

Обратите внимание, что любая аннотация, возвращаемая этим методом, является аннотацией типа.

Определено в:
getAnnotation в интерфейсе AnnotatedConstruct
Параметры типа:
A - интерфейс аннотации
Параметры:
annotationType - объект Class, соответствующий интерфейсу аннотации
Возвращает:
аннотацию этой конструкции указанного типа, если такая аннотация присутствует, в противном случае — null
Начиная с:
1.8
См. также:
  • AnnotatedConstruct.getAnnotationMirrors()
  • AnnotatedElement.getAnnotation(Class)
  • EnumConstantNotPresentException
  • AnnotationTypeMismatchException
  • IncompleteAnnotationException
  • MirroredTypeException
  • MirroredTypesException

getAnnotationsByType

<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
Возвращает аннотации указанного типа, связанные с этой конструкцией. Если с этой конструкцией не связано ни одной аннотации указанного типа, возвращаемым значением является массив длины 0. Порядок аннотаций, непосредственно или косвенно присутствующих в конструкции C, вычисляется так, как если бы косвенно присутствующие аннотации в C непосредственно присутствовали в C вместо содержащей их аннотации и в том порядке, в котором они перечислены в элементе значения содержащей их аннотации. Отличие этого метода от метода AnnotatedConstruct.getAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяемым интерфейсом аннотации, и в таком случае пытается найти одну или несколько аннотаций этого типа, «просматривая» содержащую аннотацию.

Возвращаемые этим методом аннотации могут содержать элемент, значение которого имеет тип Class. Это значение нельзя вернуть напрямую: необходимая для поиска и загрузки класса информация (например, используемый загрузчик классов) недоступна, а сам класс может быть вообще не загружаемым. Попытка прочитать объект Class путем вызова соответствующего метода возвращаемой аннотации приведет к возникновению MirroredTypeException, из которого можно извлечь соответствующий TypeMirror. Аналогично попытка прочитать элемент со значением типа Class[] приведет к возникновению MirroredTypesException.

Примечание: Этот метод отличается от других методов в этом и связанных интерфейсах. Он работает с данными отражения во время выполнения — представлениями интерфейсов аннотаций, загруженными в данный момент в виртуальную машину, — а не с представлениями, определенными и используемыми в этих интерфейсах. Следовательно, вызовы методов возвращаемого объекта аннотации могут привести к возникновению многих исключений, которые могут возникнуть при вызове методов объекта аннотации, возвращенного основным механизмом отражения. Этот метод предназначен для вызывающего кода, написанного для работы с известным фиксированным набором интерфейсов аннотаций.

Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями типов.

Определено в:
getAnnotationsByType в интерфейсе AnnotatedConstruct
Параметры типа:
A - интерфейс аннотации
Параметры:
annotationType - объект Class, соответствующий интерфейсу аннотации
Возвращает:
аннотации этой конструкции указанного типа аннотации, если они присутствуют в этой конструкции, в противном случае — пустой массив
Начиная с:
1.8
См. также:
  • AnnotatedConstruct.getAnnotationMirrors()
  • AnnotatedConstruct.getAnnotation(Class)
  • AnnotatedElement.getAnnotationsByType(Class)
  • EnumConstantNotPresentException
  • AnnotationTypeMismatchException
  • IncompleteAnnotationException
  • MirroredTypeException
  • MirroredTypesException

accept

<R,P> R accept(TypeVisitor<R,P> v, P p)
Применяет посетитель к этому типу.
Параметры типа:
R - тип возвращаемого значения методов посетителя
P - тип дополнительного параметра методов посетителя
Параметры:
v - посетитель, обрабатывающий этот тип
p - дополнительный параметр для посетителя
Возвращает:
результат, заданный посетителем

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/type/TypeMirror.html

Spec-Zone.ru

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