Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения для этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

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

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, 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