Интерфейс TypeAnnotation
public sealed interface TypeAnnotation
Моделирует структуру
type_annotation (JVMS §4.7.20). Эта модель указывает аннотированный тип в объявлении или выражении, а также часть указанного типа, к которой относится аннотация, и дополняет сведения, доступные в Annotation. Эта модель может восстановить аннотацию типа или его части, если известны расположение структуры type_annotation в файле класса и определение интерфейса аннотации.
Объекты TypeAnnotation следует сравнивать с помощью метода equals.
- С версии:
- 24
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
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 или выражении создания объекта либо на типе перед :: в выражении ссылки на метод. |
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-м аргументе типа в явном списке аргументов типа для любого из следующих элементов: выражения создания объекта, оператора явного вызова конструктора, выражения вызова метода или выражения ссылки на метод. |
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 |
Возвращает структуру type_annotation. |
TypeAnnotation.TargetInfo |
targetInfo() |
Возвращает сведения, точно определяющие, какой тип в объявлении или выражении аннотирован. |
List |
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 - Выбрасывает:
-
IllegalArgumentException— если размерtargetPathпревышает пределu1
© 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.