Spec-Zone.ru › OpenJDK 21

Интерфейс 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, 2023, 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/21/docs/api/java.base/java/lang/reflect/TypeVariable.html

Spec-Zone.ru

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