Типы интерфейсов
public interface Types
Утилитарные методы для работы с типами.
Примечание по совместимости: Методы могут быть добавлены в этот интерфейс в будущих релизах платформы.
- С момента:
- 1.6
- См. также:
ProcessingEnvironment.getTypeUtils()
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Element |
asElement(TypeMirror t) Возвращает элемент, соответствующий типу. |
TypeMirror |
asMemberOf(DeclaredType containing,
Element element) Возвращает тип элемента, когда этот элемент рассматривается как член или иным образом непосредственно содержится заданным типом. |
TypeElement |
boxedClass(PrimitiveType p) Возвращает класс упакованного значения заданного примитивного типа. |
TypeMirror |
capture(TypeMirror t) Применяет преобразование захвата к типу. |
boolean |
contains(TypeMirror t1,
TypeMirror t2) Проверяет, содержит ли один аргумент типа другой. |
List<? extends TypeMirror> |
directSupertypes(TypeMirror t) Возвращает непосредственные супертипы типа. |
TypeMirror |
erasure(TypeMirror t) Возвращает стирание типа. |
ArrayType |
getArrayType(TypeMirror componentType) Возвращает тип массива со специфицированным типом компонента. |
DeclaredType |
getDeclaredType(DeclaredType containing,
TypeElement typeElem,
TypeMirror... typeArgs) Возвращает тип, соответствующий элементу типа и фактическим аргументам типа, учитывая охватывающий тип, членом которого он является. |
DeclaredType |
getDeclaredType(TypeElement typeElem,
TypeMirror... typeArgs) Возвращает тип, соответствующий элементу типа и фактическим аргументам типа. |
NoType |
getNoType(TypeKind kind) Возвращает псевдотип, используемый в тех случаях, когда не подходит фактический тип. |
NullType |
getNullType() Возвращает тип null. |
PrimitiveType |
getPrimitiveType(TypeKind kind) Возвращает примитивный тип. |
WildcardType |
getWildcardType(TypeMirror extendsBound,
TypeMirror superBound) Возвращает новый аргумент типа подстановки. |
boolean |
isAssignable(TypeMirror t1,
TypeMirror t2) Проверяет, может ли один тип быть присвоен другому. |
boolean |
isSameType(TypeMirror t1,
TypeMirror t2) Проверяет, представляют ли два |
boolean |
isSubsignature(ExecutableType m1,
ExecutableType m2) Проверяет, является ли сигнатура одного метода подсигнатурой другого. |
boolean |
isSubtype(TypeMirror t1,
TypeMirror t2) Проверяет, является ли один тип подтипом другого. |
PrimitiveType |
unboxedType(TypeMirror t) Возвращает тип (примитивный тип) распакованных значений заданного типа. |
Методы
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- если задан тип метода или пакет
isAssignable
boolean isAssignable(TypeMirror t1,
TypeMirror t2) Проверяет, может ли один тип быть присвоен другому.
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда первый тип может быть присвоен второму - Выбрасывает:
-
IllegalArgumentException- если задан тип метода или пакет
contains
boolean contains(TypeMirror t1,
TypeMirror t2) Проверяет, содержит ли один тип аргумент другого.
- Параметры:
-
t1- первый тип -
t2- второй тип - Возвращает:
-
trueтогда и только тогда, когда первый тип содержит второй - Выбрасывает:
-
IllegalArgumentException- если задан тип метода или пакет
isSubsignature
boolean isSubsignature(ExecutableType m1,
ExecutableType m2) Проверяет, является ли сигнатура одного метода подсигнатурой другого.
- Параметры:
-
m1- первый метод -
m2- второй метод - Возвращает:
-
trueтогда и только тогда, когда первая сигнатура является подсигнатурой второй
directSupertypes
List<? extends TypeMirror> directSupertypes(TypeMirror t)
Возвращает непосредственные типы-суперклассы типа. Типы интерфейсов (если таковые имеются) будут находиться в списке последними.
- Параметры:
-
t- анализируемый тип - Возвращает:
- непосредственные типы-суперклассы, или пустой список, если таких нет
- Выбрасывает:
-
IllegalArgumentException- если задан тип метода или пакет
erasure
TypeMirror erasure(TypeMirror t)
Возвращает стёртый вид типа.
- Параметры:
-
t- тип, который нужно стереть - Возвращает:
- стёртый вид данного типа
- Выбрасывает:
-
IllegalArgumentException- если задан тип пакета
boxedClass
TypeElement boxedClass(PrimitiveType p)
Возвращает класс упакованного значения данного примитивного типа. То есть, применяется преобразование упаковки.
- Параметры:
-
p- примитивный тип, который нужно преобразовать - Возвращает:
- класс упакованного значения типа
p
unboxedType
PrimitiveType unboxedType(TypeMirror t)
Возвращает тип (примитивный тип) распакованных значений данного типа. То есть, применяется преобразование распаковки.
- Параметры:
-
t- тип, который нужно распаковать - Возвращает:
- тип распакованного значения типа
t - Выбрасывает:
-
IllegalArgumentException- если для данного типа нет преобразования распаковки
capture
TypeMirror capture(TypeMirror t)
Применяет преобразование захвата к типу.
- Параметры:
-
t- тип, который нужно преобразовать - Возвращает:
- результат применения преобразования захвата
- Выбрасывает:
-
IllegalArgumentException- если задан тип метода или пакет
getPrimitiveType
PrimitiveType getPrimitiveType(TypeKind kind)
Возвращает примитивный тип.
- Параметры:
-
kind- вид примитивного типа, который нужно вернуть - Возвращает:
- примитивный тип
- Выбрасывает:
-
IllegalArgumentException- еслиkindне является примитивным видом
getNullType
NullType getNullType()
Возвращает тип null. Это тип null.
- Возвращает:
- тип null
getNoType
NoType getNoType(TypeKind kind)
Возвращает псевдотип, используемый, когда нет подходящего фактического типа. Вид возвращаемого типа может быть либо VOID, либо NONE. Для пакетов используйте Elements.getPackageElement(CharSequence).asType().
- Параметры:
-
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...).
- Параметры:
-
typeElem- элемент типа -
typeArgs- фактические аргументы типа - Возвращает:
- тип, соответствующий элементу типа и фактическим аргументам типа
- Выбрасывает:
-
IllegalArgumentException- если дано слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа или элемент типа
getDeclaredType
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- если дано слишком много или слишком мало аргументов типа, или если предоставлен неподходящий аргумент типа, элемент типа или вложенный тип
asMemberOf
TypeMirror asMemberOf(DeclaredType containing,
Element element) Возвращает тип элемента, когда этот элемент рассматривается как член или иначе непосредственно содержащийся в заданном типе. Например, при рассмотрении как члена параметризованного типа Set<String>, метод Set.add является методом ExecutableType, параметр которого имеет тип String.
- Параметры:
-
containing- содержащий тип -
element- элемент - Возвращает:
- тип элемента, как он отображается в содержащем типе
- Вызывает исключение:
-
IllegalArgumentException- если элемент не является допустимым для данного типа
© 1993, 2020, 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.