Spec-Zone.ru › OpenJDK 27

Интерфейс 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()
Возвращает имя этой переменной типа в том виде, в котором оно встречается в исходном коде.

Методы, объявленные в интерфейсе AnnotatedElement

getAnnotation, getAnnotations, getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAnnotationPresent
Модификатор и тип Метод Описание
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
Возвращает аннотацию этого элемента указанного типа, если такая аннотация присутствует; в противном случае возвращает null.
Annotation[] getAnnotations()
Возвращает аннотации, присутствующие у этого элемента.
default <T extends Annotation>
T[]
getAnnotationsByType(Class<T> annotationClass)
Возвращает аннотации, связанные с этим элементом.
default <T extends Annotation>
T
getDeclaredAnnotation(Class<T> annotationClass)
Возвращает аннотацию этого элемента указанного типа, если такая аннотация присутствует непосредственно; в противном случае возвращает null.
Annotation[] getDeclaredAnnotations()
Возвращает аннотации, непосредственно присутствующие у этого элемента.
default <T extends Annotation>
T[]
getDeclaredAnnotationsByType(Class<T> annotationClass)
Возвращает аннотацию (аннотации) этого элемента указанного типа, если такая аннотация присутствует непосредственно или присутствует косвенно.
default boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
Возвращает true, если у этого элемента присутствует аннотация указанного типа; в противном случае возвращает false.

Методы, объявленные в интерфейсе Type

getTypeName
Модификатор и тип Метод Описание
default String 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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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