Spec-Zone.ru › OpenJDK 17

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

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 - если задан тип для исполняемого файла, пакета или модуля
См. Спецификацию языка 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.
Возвращает:
тип 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API