Spec-Zone.ru › OpenJDK 8

Интерфейс 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 , представляющих верхнюю(ие) границу(и) этой переменной типа.

D getGenericDeclaration()

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

String getName()

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

Методы, унаследованные от интерфейса java.lang.reflect.Type

getTypeName

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

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

Методы

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. Порядок объектов в массиве соответствует порядку границ в объявлении параметра типа. Возвращает массив длины 0, если параметр типа не объявляет границ.

Возвращает:
массив объектов, представляющих верхние границы переменной типа
С:
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.

Spec-Zone.ru

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