Класс 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<AnnotationElement> |
getAnnotationElements() |
Возвращает неизменяемый список элементов аннотации для этого AnnotationElement. |
long |
getTypeId() |
Возвращает идентификатор типа для этого AnnotationElement. |
String |
getTypeName() |
Возвращает полное имя типа аннотации, соответствующее этой AnnotationElement (например, "jdk.jfr.Label"). |
Object |
getValue |
Возвращает значение для этого AnnotationElement. |
List<ValueDescriptor> |
getValueDescriptors() |
Возвращает неизменяемый список описателей, описывающих значения аннотации для этого AnnotationElement. |
List<Object> |
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.- Параметры типа:
-
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