Класс 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 |
Создаёт элемент аннотации для использования с динамически определёнными событиями. |
AnnotationElement |
Создаёт элемент аннотации для использования с динамически определёнными событиями. |
AnnotationElement |
Создаёт элемент аннотации для использования с динамически определёнными событиями. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final <A> A |
getAnnotation |
Возвращает первую аннотацию для указанного типа, если существует аннотация с таким же именем, в противном случае null. |
List |
getAnnotationElements() |
Возвращает неизменяемый список элементов аннотаций для данного AnnotationElement. |
long |
getTypeId() |
Возвращает идентификатор типа для данной AnnotationElement. |
String |
getTypeName() |
Возвращает полное квалифицированное имя типа аннотации, соответствующее данной AnnotationElement (например, "jdk.jfr.Label"). |
Object |
getValue |
Возвращает значение для данной AnnotationElement. |
List |
getValueDescriptors() |
Возвращает неизменяемый список дескрипторов, описывающих значения аннотации для данной AnnotationElement. |
List |
getValues() |
Возвращает неизменяемый список значений аннотаций в порядке, соответствующем описателям значений для данной AnnotationElement. |
boolean |
hasValue |
Возвращает true, если значение аннотации с указанным именем существует в данной AnnotationElement. |
Подробное описание конструкторов
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)
null.- Параметры типа:
A— тип аннотации для запроса и возврата, если она существует- Параметры:
-
annotationType—Class object, соответствующий типу аннотации, неnull - Возвращает:
- аннотация этого элемента для указанного типа аннотации, если она существует, иначе
null
getTypeId
public long getTypeId()
AnnotationElement. Идентификатор — уникальный идентификатор типа в виртуальной машине Java (JVM). Идентификатор может отличаться между экземплярами JVM.
- Возвращает:
- идентификатор типа, не отрицательный
© 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/jdk.jfr/jdk/jfr/AnnotationElement.html