Spec-Zone.ru › OpenJDK 21

Интерфейс 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(java.lang.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(java.lang.Class<T>)
  • 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.

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

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

Specified by:
getAnnotationsByType in interface AnnotatedConstruct
Type Parameters:
A - the annotation interface
Parameters:
annotationType - the Class object corresponding to the annotation interface
Returns:
аннотации этого конструкта для указанного типа аннотации, если они присутствуют в этом конструкте, в противном случае пустой массив
Since:
1.8
See Also:
  • AnnotatedConstruct.getAnnotationMirrors()
  • AnnotatedConstruct.getAnnotation(Class)
  • AnnotatedElement.getAnnotationsByType(Class)
  • EnumConstantNotPresentException
  • AnnotationTypeMismatchException
  • IncompleteAnnotationException
  • MirroredTypeException
  • MirroredTypesException

accept

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

© 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/type/TypeMirror.html

Spec-Zone.ru

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