Интерфейсы типов

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​(TypeElement typeElem, TypeMirror... typeArgs)

Возвращает тип, соответствующий элементу типа и фактическим аргументам типа.

DeclaredType getDeclaredType​(DeclaredType containing, 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)

Проверяет, представляют ли два TypeMirror объекта один и тот же тип.

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)

Возвращает прямые супертипы типа. Типы интерфейсов, если таковые имеются, будут появляться в списке последними. Для типа интерфейса без прямых супер-интерфейсов возвращается тип-зеркало, представляющее java.lang.Object.

Параметры:
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.

Чтобы получить псевдотип, соответствующий пакету или модулю, вызовите 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...).

Параметры:
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.compiler/javax/lang/model/util/Types.html

Spec-Zone .ru
спецификации, руководства, описания, API