Интерфейс TypeMirror
- Все суперинтерфейсы:
AnnotatedConstruct
- Все известные дочерние интерфейсы:
-
ArrayType,DeclaredType,ErrorType,ExecutableType,IntersectionType,NoType,NullType,PrimitiveType,ReferenceType,TypeVariable,UnionType,WildcardType
public interface TypeMirror extends AnnotatedConstruct
void.
Сравнение типов должно осуществляться с использованием служебных методов в Types. Нет гарантии, что любой конкретный тип всегда будет представлен одним и тем же объектом.
Для реализации операций, основанных на классе объекта
TypeMirror, используйте либо посетителя visitor, либо результат метода 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. - Вид массива —
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()
Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями типа.
- Specified by:
-
getAnnotationMirrorsв интерфейсеAnnotatedConstruct - Возвращает:
- аннотации, непосредственно присутствующие на этом конструкте; пустой список, если их нет
- Since:
- 1.8
getAnnotation
<A extends Annotation> A getAnnotation(Class<A> annotationType)
null. Аннотация, возвращаемая этим методом, может содержать элемент, значение которого имеет тип Class. Это значение нельзя вернуть напрямую: информация, необходимая для поиска и загрузки класса (например, используемый загрузчик классов), недоступна, и класс может вообще не загружаться. Попытка прочитать объект Class, вызвав соответствующий метод в возвращаемой аннотации, приведет к MirroredTypeException, из которого можно извлечь соответствующий TypeMirror. Аналогично, попытка прочитать элемент со значением Class[] приведет к MirroredTypesException.
Примечание: Этот метод отличается от других методов в этом и родственных интерфейсах. Он работает с информацией о времени выполнения — представлениями интерфейсов аннотаций, в настоящее время загруженными в виртуальную машину — а не с представлениями, определёнными и используемыми в этих интерфейсах. Вследствие этого вызов методов на возвращаемом объекте аннотации может выбросить многие из исключений, которые могут быть выброшены при вызове методов на объекте аннотации, возвращаемом основной рефлексией. Этот метод предназначен для вызывающих сторон, которые написаны для работы со известным, фиксированным набором интерфейсов аннотаций.
Обратите внимание, что любая аннотация, возвращаемая этим методом, является аннотацией типа.
- Specified by:
-
getAnnotationв интерфейсеAnnotatedConstruct - Type Parameters:
A- интерфейс аннотации- Параметры:
-
annotationType- объектClass, соответствующий интерфейсу аннотации - Возвращает:
- аннотацию этого конструкта указанного типа, если такая аннотация присутствует, иначе
null - Since:
- 1.8
- См. также:
getAnnotationsByType
<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
AnnotatedConstruct.getAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяющимся интерфейсом аннотаций, и если да, то пытается найти одну или несколько аннотаций этого типа, «посмотрев» в контейнерную аннотацию. Аннотации, возвращаемые этим методом, могут содержать элемент, значение которого имеет тип Class. Это значение нельзя вернуть напрямую: информация, необходимая для поиска и загрузки класса (такая как используемый загрузчик классов), недоступна, а класс может вообще не подлежать загрузке. Попытка прочитать объект Class, вызвав соответствующий метод на возвращаемой аннотации, приведет к MirroredTypeException, из которого можно извлечь соответствующий TypeMirror. Аналогично, попытка прочитать элемент со значением Class[] приведет к MirroredTypesException.
Примечание: Этот метод отличается от других методов в этом и связанных интерфейсах. Он работает с информацией о времени выполнения — представлениями интерфейсов аннотаций, в настоящее время загруженными в виртуальную машину, — а не с представлениями, определенными и используемыми во всех этих интерфейсах. Следовательно, вызов методов на возвращаемом объекте аннотации может выбросить многие из тех исключений, которые могут быть выброшены при вызове методов на объекте аннотации, возвращаемом базовой рефлексией. Этот метод предназначен для вызывающих сторон, написанных для работы с известным, фиксированным набором интерфейсов аннотаций.
Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями типа.
- Specified by:
-
getAnnotationsByTypein interfaceAnnotatedConstruct - Type Parameters:
A- интерфейс аннотаций- Parameters:
-
annotationType- объектClass, соответствующий интерфейсу аннотаций - Returns:
- аннотации данного конструкта для указанного типа аннотации, если они присутствуют в этом конструкте, в противном случае — пустой массив
- Since:
- 1.8
- See Also:
accept
<R,P> R accept(TypeVisitor<R,P> v, P p)
- Type Parameters:
R- тип возвращаемого значения методами посетителяP- тип дополнительного параметра для методов посетителя- Parameters:
-
v- посетитель, работающий с этим типом -
p- дополнительный параметр для посетителя - Returns:
- результат, указанный посетителем
© 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/type/TypeMirror.html