Spec-Zone.ru › OpenJDK 24

Интерфейс 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 включительно. Создание переменной типа не должно приводить к созданию её границ. Повторное создание переменной типа не оказывает никакого влияния.

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

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

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

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

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

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

Методы, объявленные в интерфейсе java.lang.reflect.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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/reflect/TypeVariable.html

Spec-Zone.ru

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