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