Spec-Zone.ru › OpenJDK 25

Interface TypeVariable<D extends GenericDeclaration>

Параметры типа:
D - тип обобщённого объявления, в котором объявлена базовая переменная типа.
Все суперинтерфейсы:
AnnotatedElement, Type
public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement
TypeVariable — это общий суперинтерфейс для переменных типов различных видов. Переменная типа создаётся при первом обращении к ней рефлексивным методом, как указано в этом пакете. Если на переменную типа t ссылается тип (т. е. класс, интерфейс или тип аннотации) T, а T объявлен n-м внешним классом T (см. JLS 8.1.2), то создание t требует разрешения (см. JVMS 5) i-го внешнего класса T для i = 0, ..., n включительно. Создание переменной типа не должно приводить к созданию её границ. Повторное создание переменной типа не имеет эффекта.

Во время выполнения для представления заданной переменной типа может быть создано несколько объектов. Хотя переменная типа создаётся только один раз, это не подразумевает требования кэшировать экземпляры, представляющие эту переменную типа. Однако все экземпляры, представляющие переменную типа, должны быть равны друг другу согласно методу equals(). Следовательно, пользователи переменных типа не должны полагаться на идентичность экземпляров классов, реализующих этот интерфейс.

См. Спецификацию языка Java:
4.4 Переменные типа
С версии:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
AnnotatedType[] getAnnotatedBounds()
Возвращает массив объектов AnnotatedType, представляющих использование типов для обозначения верхних границ параметра типа, представленного этим TypeVariable.
Type[] getBounds()
Возвращает массив объектов Type, представляющих верхнюю границу (границы) этой переменной типа.
D getGenericDeclaration()
Возвращает объект GenericDeclaration, представляющий обобщённое объявление, в котором объявлена эта переменная типа.
String getName()
Возвращает имя этой переменной типа в том виде, в котором оно используется в исходном коде.

Методы, объявленные в интерфейсе AnnotatedElement

getAnnotation, getAnnotations, getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAnnotationPresent

Методы, объявленные в интерфейсе Type

getTypeName

Подробное описание методов

getBounds

Type[] getBounds()
Возвращает массив объектов Type, представляющих верхнюю границу (границы) этой переменной типа. Если верхняя граница явно не объявлена, верхней границей является Object.

Для каждой верхней границы B:

  • если B — параметризованный тип или переменная типа, он создаётся (подробное описание процесса создания параметризованных типов см. в ParameterizedType).
  • В противном случае B разрешается.
Возвращает:
массив объектов Type, представляющих верхнюю границу (границы) этой переменной типа
Выбрасывает:
TypeNotPresentException - если какая-либо из границ ссылается на несуществующее объявление типа
MalformedParameterizedTypeException - если какая-либо из границ ссылается на параметризованный тип, который не может быть создан по какой-либо причине

getGenericDeclaration

D getGenericDeclaration()
Возвращает объект GenericDeclaration, представляющий обобщённое объявление, в котором объявлена эта переменная типа.
Возвращает:
обобщённое объявление, в котором объявлена эта переменная типа.
С версии:
1.5

getName

String getName()
Возвращает имя этой переменной типа в том виде, в котором оно используется в исходном коде.
Возвращает:
имя этой переменной типа в том виде, в котором оно встречается в исходном коде

getAnnotatedBounds

AnnotatedType[] getAnnotatedBounds()
Возвращает массив объектов AnnotatedType, представляющих использование типов для обозначения верхних границ параметра типа, представленного этим TypeVariable. Порядок объектов в массиве соответствует порядку границ в объявлении параметра типа. Обратите внимание: если верхняя граница явно не объявлена, верхней границей является неаннотированный Object.
Возвращает:
массив объектов, представляющих верхнюю границу (границы) переменной типа
С версии:
1.8

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/lang/reflect/TypeVariable.html

Spec-Zone.ru

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