Типы интерфейсов
public interface Types
Примечание по совместимости: В будущих версиях платформы в этот интерфейс могут быть добавлены методы.
- С тех пор:
- 1.6
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Element |
asElement |
Возвращает элемент, соответствующий типу. |
TypeMirror |
asMemberOf |
Возвращает тип элемента, когда этот элемент рассматривается как член или иным образом непосредственно содержится в заданном типе. |
TypeElement |
boxedClass |
Возвращает класс упакованного значения примитивного типа аргумента. |
TypeMirror |
capture |
Применяет преобразование захвата к типу. |
boolean |
contains |
Проверяет, содержит ли один тип аргумента другой. |
List |
directSupertypes |
Возвращает непосредственные надтипы типа. |
TypeMirror |
erasure |
Возвращает стирание типа. |
ArrayType |
getArrayType |
Возвращает тип массива со значением указанного компонента. |
DeclaredType |
getDeclaredType |
Возвращает тип, соответствующий элементу типа и фактическим аргументам типа. |
DeclaredType |
getDeclaredType |
Возвращает тип, соответствующий элементу типа и фактическим аргументам типа, учитывая содержащий тип, членом которого он является. |
NoType |
getNoType |
Возвращает псевдотип, используемый там, где нет подходящего фактического типа. |
NullType |
getNullType() |
Возвращает тип null. |
PrimitiveType |
getPrimitiveType |
Возвращает примитивный тип. |
WildcardType |
getWildcardType |
Возвращает новый тип подстановочных значений. |
boolean |
isAssignable |
Проверяет, может ли один тип быть присвоен другому. |
boolean |
isSameType |
Проверяет, представляют ли два TypeMirror объекта один и тот же тип. |
boolean |
isSubsignature |
Проверяет, является ли сигнатура одного метода подсигнатурой другого. |
boolean |
isSubtype |
Проверяет, является ли один тип подтипом другого. |
PrimitiveType |
unboxedType |
Возвращает тип (примитивный тип) распакованных значений заданного типа. |
Подробное описание методов
asElement
Element asElement(TypeMirror t)
- тип
DeclaredType - тип
TypeVariable - псевдотип для пакета или модуля
null если тип не имеет соответствующего элемента. Типы без соответствующих элементов включают:
- Параметры:
-
t- тип для сопоставления с элементом - Возвращает:
- элемент, соответствующий заданному типу
isSameType
boolean isSameType(TypeMirror t1, TypeMirror t2)
TypeMirror один и тот же тип. Ограничение: если любой из аргументов этого метода представляет собой подстановку, этот метод вернёт false. Вследствие этого, подстановка не является тем же типом, что и сама. Это может показаться неожиданным, но имеет смысл, если учесть, что подобный пример должен быть отклонен компилятором:
List<?> list = new ArrayList<Object>();list.add(list.get(0));
Поскольку аннотации являются лишь метаданными, связанными с типом, набор аннотаций ни в одном из аргументов не учитывается при вычислении, являются ли два объекта
TypeMirror одним и тем же типом. В частности, два объекта TypeMirror могут иметь разные аннотации и всё равно считаться одинаковыми.
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда два типа совпадают
isSubtype
boolean isSubtype(TypeMirror t1, TypeMirror t2)
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда первый тип является подтипом второго - Исключения:
-
IllegalArgumentException- если задан тип для исполняемого кода, пакета или модуля - См. Спецификацию языка Java:
- 4.10 Подтипы
isAssignable
boolean isAssignable(TypeMirror t1, TypeMirror t2)
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда первый тип может быть приведён ко второму - Исключения:
-
IllegalArgumentException- если задан тип для исполняемого кода, пакета или модуля - См. Спецификацию языка Java:
- 5.2 Контексты присваивания
contains
boolean contains(TypeMirror t1, TypeMirror t2)
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда первый тип содержит второй - Исключения:
-
IllegalArgumentException- если задан тип для исполняемого кода, пакета или модуля - См. Спецификацию языка Java:
- 4.5.1 Аргументы типов параметризованных типов
isSubsignature
boolean isSubsignature(ExecutableType m1, ExecutableType m2)
- Параметры:
-
m1- первый метод -
m2- второй метод - Возвращает:
-
trueтогда и только тогда, когда первая сигнатура является подсигнатурой второй - См. Спецификацию языка Java:
- 8.4.2 Сигнатура метода
directSupertypes
List<? extends TypeMirror> directSupertypes(TypeMirror t)
java.lang.Object. Тип java.lang.Object не имеет непосредственного надтипа (JLS 8.1.4, 8.1.5), поэтому для непосредственных надтипов типа-зеркала, представляющего
java.lang.Object, возвращается пустой список.- Параметры:
-
t- проверяемый тип - Возвращает:
- непосредственные надтипы или пустой список, если таковых нет
- Исключения:
-
IllegalArgumentException- если задан тип для исполняемого кода, пакета или модуля - См. Спецификацию языка Java:
- 4.10 Подтипы
erasure
TypeMirror erasure(TypeMirror t)
- Параметры:
-
t- тип для стирания - Возвращает:
- стирание типа
- Исключения:
-
IllegalArgumentException- если задан тип для пакета или модуля - См. Спецификацию языка Java:
- 4.6 Стирание типов
boxedClass
TypeElement boxedClass(PrimitiveType p)
- Параметры:
-
p- примитивный тип для преобразования - Возвращает:
- класс упакованного значения примитивного типа-аргумента
- См. Спецификацию языка Java:
- 5.1.7 Преобразование упаковки
unboxedType
PrimitiveType unboxedType(TypeMirror t)
- Параметры:
-
t- тип для распаковки - Возвращает:
- тип распакованного значения типа
t - Исключения:
-
IllegalArgumentException- если заданный тип не имеет преобразования распаковки - См. Спецификацию языка Java:
- 5.1.8 Преобразование распаковки
capture
TypeMirror capture(TypeMirror t)
- Параметры:
-
t- тип для преобразования - Возвращает:
- результат применения преобразования захвата
- Исключения:
-
IllegalArgumentException- если задан тип для исполняемого кода, пакета или модуля - См. Спецификацию языка Java:
- 5.1.10 Преобразование захвата
getPrimitiveType
PrimitiveType getPrimitiveType(TypeKind kind)
- Параметры:
-
kind- вид примитивного типа для возвращения - Возвращает:
- примитивный тип
- Исключения:
-
IllegalArgumentException- еслиkindне является видом примитивного типа
getNullType
NullType getNullType()
null.- Возвращает:
- нулевой тип
getNoType
NoType getNoType(TypeKind kind)
VOID, либо NONE. Чтобы получить псевдотип, соответствующий пакету или модулю, вызовите asType() на элементе, моделирующем пакет или модуль. Имена могут быть преобразованы в элементы для пакетов или модулей с использованием Elements.getPackageElement(CharSequence) или Elements.getModuleElement(CharSequence) соответственно.
- Параметры:
-
kind- вид возвращаемого типа - Возвращает:
- псевдотип вида
VOIDилиNONE - Исключения:
-
IllegalArgumentException- еслиkindнедействителен
Тип массива
ArrayType getArrayType(TypeMirror componentType)
- Параметры:
-
componentType- тип компонента - Возвращает:
- тип массива со заданным типом компонента
- Исключения:
-
IllegalArgumentException- если тип компонента не подходит для массива
Тип подстановки
WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound)
- Параметры:
-
extendsBound- ограничение "расширения" (верхнее ограничение), илиnullесли не задано -
superBound- ограничение "супер" (нижнее ограничение), илиnullесли не задано - Возвращает:
- новый тип подстановки
- Исключения:
-
IllegalArgumentException- если ограничения некорректны
Тип объявления
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
Set и тип-отражение для String, этот метод может быть использован для получения параметризованного типа Set<String>. Количество аргументов типа должно быть равно количеству формальных параметров типа элемента типа, или равно нулю. Если ноль, и если элемент типа является обобщенным, возвращается исходный тип элемента типа.
Если возвращается параметризованный тип, элемент типа не должен содержаться во внешнем обобщенном классе. Параметризованный тип Outer<String>.Inner<Number>, например, может быть построен, сначала используя этот метод для получения типа Outer<String>, а затем вызывая getDeclaredType(DeclaredType, TypeElement, TypeMirror...).
- Параметры:
-
typeElem- элемент типа -
typeArgs- фактические аргументы типа - Возвращает:
- тип, соответствующий элементу типа и фактическим аргументам типа
- Исключения:
-
IllegalArgumentException- если задано слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа или элемент типа
Тип объявления
DeclaredType getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
Outer<String>.Inner<Number>, например, может быть построен, сначала используя getDeclaredType(TypeElement, TypeMirror...) для получения типа Outer<String>, а затем вызывая этот метод. Если содержащий тип является параметризованным типом, количество аргументов типа должно быть равно количеству формальных параметров типа typeElem. Если он не параметризован или является null, этот метод эквивалентен getDeclaredType(typeElem, typeArgs).
- Параметры:
-
containing- содержащий тип, илиnullесли не задан -
typeElem- элемент типа -
typeArgs- фактические аргументы типа - Возвращает:
- тип, соответствующий элементу типа и фактическим аргументам типа, содержащийся в данном типе
- Исключения:
-
IllegalArgumentException- если задано слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа, элемент типа или содержащий тип
Как член
TypeMirror asMemberOf(DeclaredType containing, Element element)
Set<String>, метод Set.add является ExecutableType, параметр которого имеет тип String.- Параметры:
-
containing- содержащий тип -
element- элемент - Возвращает:
- тип элемента, рассматриваемого с точки зрения содержащего типа
- Исключения:
-
IllegalArgumentException- если элемент не является допустимым для данного типа
© 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/util/Types.html