Spec-Zone.ru › OpenJDK 17

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

Spec-Zone.ru

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