Типы интерфейсов
public interface Types
Примечание по совместимости: В будущих выпусках платформы в этот интерфейс могут быть добавлены методы.
- С тех пор:
- 1.6
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Element |
asElement |
Возвращает элемент, соответствующий типу. |
TypeMirror |
asMemberOf |
Возвращает тип элемента, когда этот элемент рассматривается как член или иным образом непосредственно содержится в заданном типе. |
TypeElement |
boxedClass |
Возвращает класс упакованного значения примитивного типа аргумента. |
TypeMirror |
capture |
Применяет преобразование захвата к типу. |
boolean |
contains |
Проверяет, содержит ли один тип аргумента другой. |
List<? extends TypeMirror> |
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.- Параметры:
-
t- проверяемый тип - Возвращает:
- непосредственные надтипы или пустой список, если их нет
- Исключения:
-
IllegalArgumentException- если задан тип для исполняемого файла, пакета или модуля - См. Спецификацию языка Java:
- 4.10 Подтипы
стирание
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.- Возвращает:
- тип null
getNoType
NoType getNoType(TypeKind kind)
VOID, либо NONE. Чтобы получить псевдотип, соответствующий пакету или модулю, вызовите asType() для элемента, моделирующего пакет или модуль. Имена можно преобразовать в элементы для пакетов или модулей, используя Elements.getPackageElement(CharSequence) или Elements.getModuleElement(CharSequence) соответственно.
- Параметры:
-
kind- вид возвращаемого типа - Возвращает:
- псевдотип вида
VOIDилиNONE - Исключения:
-
IllegalArgumentException- еслиkindнедействителен
getArrayType
ArrayType getArrayType(TypeMirror componentType)
- Параметры:
-
componentType- тип компонента - Возвращает:
- массивный тип с указанным типом компонента
- Исключения:
-
IllegalArgumentException- если тип компонента недействителен для массива
getWildcardType
WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound)
- Параметры:
-
extendsBound- граница расширения (верхняя), илиnullесли её нет -
superBound- граница наследования (нижняя), илиnullесли её нет - Возвращает:
- новый тип подстановочного символа
- Исключения:
-
IllegalArgumentException- если границы некорректны
getDeclaredType
DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs)
Set и тип зеркала для String, например, этот метод можно использовать для получения параметризованного типа Set<String>. Количество аргументов типа должно быть равно количеству формальных параметров типа элемента типа или равно нулю. Если равно нулю, и если элемент типа является обобщённым, то возвращается тип "сырого" элемента типа.
Если возвращается параметризованный тип, его элемент типа не должен быть включён во внешний обобщённый класс. Параметризованный тип Outer<String>.Inner<Number>, например, может быть построен, сначала используя этот метод для получения типа Outer<String>, а затем вызывая getDeclaredType(DeclaredType, TypeElement, TypeMirror...).
- Parameters:
-
typeElem- элемент типа -
typeArgs- фактические аргументы типа - Returns:
- тип, соответствующий элементу типа и фактическим аргументам типа
- Throws:
-
IllegalArgumentException- если предоставлено слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа или элемент типа
getDeclaredType
DeclaredType getDeclaredType(DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs)
Outer<String>.Inner<Number>, например, может быть построен, сначала используя getDeclaredType(TypeElement, TypeMirror...) для получения типа Outer<String>, а затем вызывая этот метод. Если содержащий тип является параметризованным типом, количество аргументов типа должно быть равно количеству формальных параметров типа typeElem. Если он не параметризован или если он null, этот метод эквивалентен getDeclaredType(typeElem, typeArgs).
- Parameters:
-
containing- содержащий тип, илиnullесли нет -
typeElem- элемент типа -
typeArgs- фактические аргументы типа - Returns:
- тип, соответствующий элементу типа и фактическим аргументам типа, содержащимся в заданном типе
- Throws:
-
IllegalArgumentException- если предоставлено слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа, элемент типа или содержащий тип
asMemberOf
TypeMirror asMemberOf(DeclaredType containing, Element element)
Set<String>, метод Set.add является ExecutableType, параметр которого имеет тип String.- Parameters:
-
containing- содержащий тип -
element- элемент - Returns:
- тип элемента, как рассматриваемого из содержащего типа
- Throws:
-
IllegalArgumentException- если элемент не является допустимым для данного типа
© 1993, 2021, 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/17/docs/api/java.compiler/javax/lang/model/util/Types.html