Интерфейс 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) могут отличаться.- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект, сравниваемый с этим типом - Возвращает:
-
trueесли указанный объект равен этому - См. также:
hashCode
int hashCode()
Object.hashCode.- Переопределяет:
-
hashCodeв классе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
- См. также:
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- the annotation interface - Parameters:
-
annotationType- theClassobject corresponding to the annotation interface - 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, 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