Spec-Zone.ru › OpenJDK 25

Класс AnnotationElement

java.lang.Object
jdk.jfr.AnnotationElement
public final class AnnotationElement extends Object
Описывает метаданные события, такие как метки, описания и единицы измерения.

В следующем примере показано, как AnnotationElement можно использовать для динамического определения событий.

List<AnnotationElement> typeAnnotations = new ArrayList<>();
typeAnnotations.add(new AnnotationElement(Name.class, "com.example.HelloWorld"));
typeAnnotations.add(new AnnotationElement(Label.class, "Hello World"));
typeAnnotations.add(new AnnotationElement(Description.class, "Helps programmer getting started"));

List<AnnotationElement> fieldAnnotations = new ArrayList<>();
fieldAnnotations.add(new AnnotationElement(Label.class, "Message"));

List<ValueDescriptor> fields = new ArrayList<>();
fields.add(new ValueDescriptor(String.class, "message", fieldAnnotations));

EventFactory f = EventFactory.create(typeAnnotations, fields);
Event event = f.newEvent();
event.commit();
Начиная с:
9

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

Конструктор Описание
AnnotationElement(Class<? extends Annotation> annotationType)
Создает элемент аннотации для использования в динамически определяемых событиях.
AnnotationElement(Class<? extends Annotation> annotationType, Object value)
Создает элемент аннотации для использования в динамически определяемых событиях.
AnnotationElement(Class<? extends Annotation> annotationType, Map<String,Object> values)
Создает элемент аннотации для использования в динамически определяемых событиях.

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

Модификатор и тип Метод Описание
final <A> A getAnnotation(Class<? extends Annotation> annotationType)
Возвращает первую аннотацию указанного типа, если существует AnnotationElement с тем же именем; в противном случае возвращает null.
List<AnnotationElement> getAnnotationElements()
Возвращает неизменяемый список элементов аннотации для этого AnnotationElement.
long getTypeId()
Возвращает идентификатор типа для этого AnnotationElement.
String getTypeName()
Возвращает полное имя типа аннотации, соответствующего этому AnnotationElement (например, "jdk.jfr.Label").
Object getValue(String name)
Возвращает значение для этого AnnotationElement.
List<ValueDescriptor> getValueDescriptors()
Возвращает неизменяемый список дескрипторов, описывающих значения аннотации для этого AnnotationElement.
List<Object> getValues()
Возвращает неизменяемый список значений аннотации в порядке, соответствующем дескрипторам значений для этого AnnotationElement.
boolean hasValue(String name)
Возвращает true, если в этом AnnotationElement существует значение аннотации с указанным именем.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

AnnotationElement

public AnnotationElement(Class<? extends Annotation> annotationType, Map<String,Object> values)
Создает элемент аннотации для использования в динамически определяемых событиях.

Поддерживаются следующие типы значений: byte, int, short, long, double, float, boolean, char и String. Перечисления, массивы и классы не поддерживаются.

Если annotationType имеет аннотации (непосредственно присутствующие, косвенно присутствующие или связанные), эти аннотации включаются рекурсивно. Однако как annotationType, так и любые рекурсивно найденные аннотации должны иметь аннотацию MetadataDefinition.

Сведения о статическом определении событий см. в классе Event.

Параметры:
annotationType — интерфейс, расширяющий java.lang.annotation.Annotation, но не null
values — Map с ключами, совпадающими с именами методов указанного интерфейса аннотации
Вызывает исключение:
IllegalArgumentException — если значение/ключ равно null, используется неподдерживаемый тип значения либо используется значение/ключ, не соответствующее сигнатурам в annotationType

AnnotationElement

public AnnotationElement(Class<? extends Annotation> annotationType, Object value)
Создает элемент аннотации для использования в динамически определяемых событиях.

Поддерживаются следующие типы значений: byte, int, short, long, double, float, boolean, char и String. Перечисления, массивы и классы не поддерживаются.

Если annotationType имеет аннотации (непосредственно присутствующие, косвенно присутствующие или связанные), эти аннотации включаются рекурсивно. Однако как annotationType, так и любые рекурсивно найденные аннотации должны иметь аннотацию MetadataDefinition.

Сведения о статическом определении событий см. в классе Event.

Параметры:
annotationType — интерфейс, расширяющий java.lang.annotation.Annotation,, но не null
value — значение, соответствующее методу value указанного annotationType
Вызывает исключение:
IllegalArgumentException — если значение/ключ равно null, используется неподдерживаемый тип значения либо используется значение/ключ, не соответствующее сигнатурам в annotationType

AnnotationElement

public AnnotationElement(Class<? extends Annotation> annotationType)
Создает элемент аннотации для использования в динамически определяемых событиях.

Поддерживаются следующие типы значений: byte, short, int, long, double, float, boolean, char и String. Перечисления, массивы и классы не поддерживаются.

Если annotationType имеет аннотации (непосредственно присутствующие, косвенно присутствующие или связанные), эти аннотации включаются рекурсивно. Однако как annotationType, так и любые рекурсивно найденные аннотации должны иметь аннотацию MetadataDefinition.

Сведения о статическом определении событий см. в классе Event.

Параметры:
annotationType — интерфейс, расширяющий java.lang.annotation.Annotation, но не null

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

getValues

public List<Object> getValues()
Возвращает неизменяемый список значений аннотации в порядке, соответствующем дескрипторам значений для этого AnnotationElement.
Возвращает:
список значений, не null

getValueDescriptors

public List<ValueDescriptor> getValueDescriptors()
Возвращает неизменяемый список дескрипторов, описывающих значения аннотации для этого AnnotationElement.
Возвращает:
список дескрипторов значений для этого Annotation, не null

getAnnotationElements

public List<AnnotationElement> getAnnotationElements()
Возвращает неизменяемый список элементов аннотации для этого AnnotationElement.
Возвращает:
список метааннотаций, не null

getTypeName

public String getTypeName()
Возвращает полное имя типа аннотации, соответствующего этому AnnotationElement (например, "jdk.jfr.Label").
Возвращает:
имя типа, не null

getValue

public Object getValue(String name)
Возвращает значение для этого AnnotationElement.
Параметры:
name — имя метода в интерфейсе аннотации, не null.
Возвращает:
значение аннотации, не null.
Вызывает исключение:
IllegalArgumentException — если в аннотации не существует метода с указанным именем

hasValue

public boolean hasValue(String name)
Возвращает true, если в этом AnnotationElement существует значение аннотации с указанным именем.
Параметры:
name — имя метода интерфейса аннотации для поиска, не null
Возвращает:
true, если метод существует; в противном случае false

getAnnotation

public final <A> A getAnnotation(Class<? extends Annotation> annotationType)
Возвращает первую аннотацию указанного типа, если существует AnnotationElement с тем же именем; в противном случае возвращает null.
Параметры типа:
A — тип аннотации, которую нужно запросить и вернуть, если она существует
Параметры:
annotationType — Class object, соответствующий типу аннотации, не null
Возвращает:
аннотацию этого элемента указанного типа, если она существует; в противном случае — null

getTypeId

public long getTypeId()
Возвращает идентификатор типа для этого AnnotationElement.

Идентификатор является уникальным для типа в виртуальной машине Java (JVM). Идентификатор может различаться в разных экземплярах JVM.

Возвращает:
идентификатор типа, неотрицательный

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jfr/jdk/jfr/AnnotationElement.html

Spec-Zone.ru

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