Тип переменной 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()). Вследствие этого пользователи переменных типа не должны полагаться на идентичность экземпляров классов, реализующих этот интерфейс.

С:
1.5

Методы

Модификатор и типМетодОписание
AnnotatedType[]getAnnotatedBounds()

Возвращает массив объектов AnnotatedType, представляющих использование типов для обозначения верхних границ параметра типа, представленного этой переменной TypeVariable.

Type[]getBounds()

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

DgetGenericDeclaration()

Возвращает объект GenericDeclaration, представляющий объявление обобщения, объявившее эту переменную типа.

StringgetName()

Возвращает имя этой переменной типа, так как она встречается в исходном коде.

Методы, объявленные в интерфейсе 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, 2020, 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/11/docs/api/java.base/java/lang/reflect/TypeVariable.html

Spec-Zone .ru
спецификации, руководства, описания, API