Интерфейс TypeMirror
- Все суперинтерфейсы:
AnnotatedConstruct
- Все известные подинтерфейсы:
ArrayType, DeclaredType, ErrorType, ExecutableType, IntersectionType, NoType, NullType, PrimitiveType, ReferenceType, TypeVariable, UnionType, WildcardType
public interface TypeMirror extends AnnotatedConstruct
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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
<R, |
accept |
Применяет посетитель к этому типу. |
boolean |
equals |
Соответствует общему контракту Object.equals. |
<A extends Annotation> |
getAnnotation |
Возвращает аннотацию этой конструкции указанного типа, если такая аннотация присутствует, в противном случае — null. |
List |
getAnnotationMirrors() |
Возвращает аннотации, непосредственно присутствующие в этой конструкции. |
<A extends Annotation> |
getAnnotationsByType |
Возвращает аннотации указанного типа, связанные с этой конструкцией. |
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) могут различаться.hashCode
int hashCode()
Object.hashCode.toString
String toString()
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
- См. также:
getAnnotationsByType
<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
AnnotatedConstruct.getAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяемым интерфейсом аннотации, и в таком случае пытается найти одну или несколько аннотаций этого типа, «просматривая» содержащую аннотацию. Возвращаемые этим методом аннотации могут содержать элемент, значение которого имеет тип Class. Это значение нельзя вернуть напрямую: необходимая для поиска и загрузки класса информация (например, используемый загрузчик классов) недоступна, а сам класс может быть вообще не загружаемым. Попытка прочитать объект Class путем вызова соответствующего метода возвращаемой аннотации приведет к возникновению MirroredTypeException, из которого можно извлечь соответствующий TypeMirror. Аналогично попытка прочитать элемент со значением типа Class[] приведет к возникновению MirroredTypesException.
Примечание: Этот метод отличается от других методов в этом и связанных интерфейсах. Он работает с данными отражения во время выполнения — представлениями интерфейсов аннотаций, загруженными в данный момент в виртуальную машину, — а не с представлениями, определенными и используемыми в этих интерфейсах. Следовательно, вызовы методов возвращаемого объекта аннотации могут привести к возникновению многих исключений, которые могут возникнуть при вызове методов объекта аннотации, возвращенного основным механизмом отражения. Этот метод предназначен для вызывающего кода, написанного для работы с известным фиксированным набором интерфейсов аннотаций.
Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями типов.
- Определено в:
-
getAnnotationsByTypeв интерфейсеAnnotatedConstruct - Параметры типа:
A- интерфейс аннотации- Параметры:
-
annotationType- объектClass, соответствующий интерфейсу аннотации - Возвращает:
- аннотации этой конструкции указанного типа аннотации, если они присутствуют в этой конструкции, в противном случае — пустой массив
- Начиная с:
- 1.8
- См. также:
accept
<R,P> R accept(TypeVisitor<R,P> v, P p)
- Параметры типа:
R- тип возвращаемого значения методов посетителяP- тип дополнительного параметра методов посетителя- Параметры:
-
v- посетитель, обрабатывающий этот тип -
p- дополнительный параметр для посетителя - Возвращает:
- результат, заданный посетителем
© 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