Spec-Zone.ru › OpenJDK 17

Класс 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();
 
Since:
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)
Возвращает первую аннотацию для указанного типа, если аннотация с таким же именем существует, иначе 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.

Методы, объявленные в классе java.lang.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.
Параметры типа:
A — тип аннотации, для которой выполняется запрос и которая возвращается, если она существует
Параметры:
annotationType — Class object соответствующий типу аннотации, не null
Возвращает:
аннотация этого элемента для указанного типа аннотации, если она существует, иначе null

getTypeId

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

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

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

© 1993, 2021, 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/17/docs/api/jdk.jfr/jdk/jfr/AnnotationElement.html

Spec-Zone.ru

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