Spec-Zone.ru › OpenJDK 24

Интерфейс TypeAnnotation

public sealed interface TypeAnnotation
Моделирует структуру type_annotation (JVMS 4.7.20). Эта модель указывает на аннотированный тип в объявлении или выражении и часть указанного типа, которая аннотирована, помимо того, что доступно в Annotation.

Эта модель может восстановить аннотацию на типе или части типа, зная местоположение структуры type_annotation в файле класса и определение интерфейса аннотации.

Два объекта TypeAnnotation должны быть сравнены с помощью метода equals.

Since:
24
См. также:
  • Annotation
  • RuntimeVisibleTypeAnnotationsAttribute
  • RuntimeInvisibleTypeAnnotationsAttribute

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static interface  TypeAnnotation.CatchTarget
Указывает, что аннотация появляется на i-том типе в объявлении параметра исключения.
static interface  TypeAnnotation.EmptyTarget
Указывает, что аннотация появляется на типе в объявлении поля, типе возвращаемого значения метода, типе вновь созданного объекта или типе получателя метода или конструктора.
static interface  TypeAnnotation.FormalParameterTarget
Указывает, что аннотация появляется на типе в объявлении формального параметра метода, конструктора или лямбда-выражения.
static interface  TypeAnnotation.LocalVarTarget
Указывает, что аннотация появляется на типе в объявлении локальной переменной, включая переменную, объявленную как ресурс в операторе try-with-resources.
static interface  TypeAnnotation.LocalVarTargetInfo
Указывает диапазон смещений массива кода, в пределах которого локальная переменная имеет значение, и индекс в массив локальных переменных текущей рамки, в котором эта локальная переменная может быть найдена.
static interface  TypeAnnotation.OffsetTarget
Указывает, что аннотация появляется на типе в выражении instanceof или выражении new, или на типе перед :: в выражении ссылки на метод.
static interface  TypeAnnotation.SupertypeTarget
Указывает, что аннотация появляется на типе в предложении extends или implements объявления класса или интерфейса.
static interface  TypeAnnotation.TargetInfo
Указывает, какой тип в объявлении или выражении аннотируется.
static enum  TypeAnnotation.TargetType
Вид целевого объекта, на котором появляется аннотация, как определено в JVMS 4.7.20.1.
static interface  TypeAnnotation.ThrowsTarget
Указывает, что аннотация появляется на i-том типе в предложении throws объявления метода или конструктора.
static interface  TypeAnnotation.TypeArgumentTarget
Указывает, что аннотация появляется либо на i-том типе в выражении приведения типа, либо на i-м типе аргумента в явном списке аргументов типа для любого из следующих: выражение new, явное обращение к конструктору, выражение вызова метода или выражение ссылки на метод.
static interface  TypeAnnotation.TypeParameterBoundTarget
Указывает, что аннотация появляется на j-м ограничении i-го параметра типа объявления обобщенного класса, интерфейса, метода или конструктора.
static interface  TypeAnnotation.TypeParameterTarget
Указывает, что аннотация появляется на объявлении i-го параметра типа обобщенного класса, обобщенного интерфейса, обобщенного метода или обобщенного конструктора.
static interface  TypeAnnotation.TypePathComponent
JVMS: Структура Type_path определяет, какая часть типа аннотирована, как определено в JVMS 4.7.20.2

Краткое описание методов

Модификатор и тип Метод Описание
Annotation annotation()
Возвращает примененную аннотацию к части, указанной в targetPath().
static TypeAnnotation of(TypeAnnotation.TargetInfo targetInfo, List<TypeAnnotation.TypePathComponent> targetPath, Annotation annotation)
Возвращает структуру type_annotation.
TypeAnnotation.TargetInfo targetInfo()
Возвращает информацию, точно описывающую, какой тип в объявлении или выражении аннотируется.
List<TypeAnnotation.TypePathComponent> targetPath()
Возвращает часть типа, указанного в targetInfo(), которая аннотирована.

Подробное описание методов

targetInfo

TypeAnnotation.TargetInfo targetInfo()
Возвращает информацию, точно описывающую, какой тип в объявлении или выражении аннотируется. Моделирует элементы target_type и target_info.
Возвращает:
информацию, точно описывающую, какой тип в объявлении или выражении аннотируется

targetPath

List<TypeAnnotation.TypePathComponent> targetPath()
Возвращает часть типа, указанного в targetInfo(), которая аннотирована.
Возвращает:
часть типа, указанного в targetInfo(), которая аннотирована

annotation

Annotation annotation()
Возвращает аннотацию, примененную к части, указанной в targetPath(). Моделирует интерфейс аннотации и набор пар имя-значение, подмножество структуры type_annotation, идентичное структуре annotation.
Возвращает:
аннотацию, примененную к части, указанной в targetPath()

of

static TypeAnnotation of(TypeAnnotation.TargetInfo targetInfo, List<TypeAnnotation.TypePathComponent> targetPath, Annotation annotation)
Возвращает структуру type_annotation.
Параметры:
targetInfo - какой тип в объявлении или выражении аннотирован
targetPath - какая часть типа аннотирована
annotation - аннотация
Возвращает:
структуру type_annotation

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/TypeAnnotation.html

Spec-Zone.ru

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