Класс 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 |
Создает элемент аннотации для использования в динамически определяемых событиях. |
AnnotationElement |
Создает элемент аннотации для использования в динамически определяемых событиях. |
AnnotationElement |
Создает элемент аннотации для использования в динамически определяемых событиях. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final <A> A |
getAnnotation |
Возвращает первую аннотацию указанного типа, если существует AnnotationElement с тем же именем; в противном случае возвращает 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)
AnnotationElement с тем же именем; в противном случае возвращает 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://docs.oracle.com/en/java/javase/25/docs/api/jdk.jfr/jdk/jfr/AnnotationElement.html