Тип переменной 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() | Возвращает массив объектов |
D | getGenericDeclaration() | Возвращает объект |
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, 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