次の例は、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(Class<? extends Annotation> annotationType)
動的に定義されるイベントに使用する注釈要素を作成します。AnnotationElement(Class<? extends Annotation> annotationType, Object value)
動的に定義されるイベントに使用する注釈要素を作成します。AnnotationElement(Class<? extends Annotation> annotationType, Map<String,Object> values)
動的に定義されるイベントに使用する注釈要素を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明<A> A
getAnnotation(Class<? extends Annotation> annotationType)
同じ名前のAnnotationElement
が存在する場合は、指定された型の最初の注釈を戻し、それ以外の場合はnull
を戻します。このAnnotationElement
の注釈要素の不変のリストを返します。long
このAnnotationElement
のタイプIDを返します。このAnnotationElement
(たとえば、"jdk.jfr.Label"
)に対応する注釈型の完全修飾名を返します。このAnnotationElement
の値を返します。このAnnotationElement
の注釈値を説明する記述子の不変のリストを返します。このAnnotationElement
の値記述子と一致する順序で、注釈値の不変なリストを返します。boolean
指定された名前の注釈値がこのAnnotationElement
に存在する場合、true
を返します。
-
コンストラクタの詳細
-
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
- 指定されたannotationType
のvalue
メソッドに一致する値- 例外:
IllegalArgumentException
- 値/キーがnull
の場合、サポートされていない値タイプが使用されるか、annotationType
のシグネチャに一致しない値/キーが使用されます
-
AnnotationElement
public AnnotationElement(Class<? extends Annotation> annotationType)動的に定義されるイベントに使用する注釈要素を作成します。サポートされている値のタイプは、
byte
、short
、int
、long
、double
、float
、boolean
、char
およびString
です。 列挙型、配列およびクラスはサポートされていません。annotationType
に(直接的に存在するか、間接的に存在するか、)という注釈がある場合、それらの注釈が再帰的に含まれます。 ただし、annotationType
と再帰的に見つかった注釈の両方にMetadataDefinition
アノテーションが必要です。イベントを静的に定義するには、
Event
クラスを参照してください。- パラメータ:
annotationType
-null
ではなく、java.lang.annotation.Annotationを拡張するインタフェース
-
-
メソッドの詳細
-
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
このAnnotationElement
の値を返します。- パラメータ:
name
-null
ではなく、注釈インタフェース内のメソッドの名前。- 戻り値:
null
ではなく注釈値。- 例外:
IllegalArgumentException
- 指定された名前のメソッドが注釈に存在しない場合
-
hasValue
public boolean hasValue(String name)指定された名前の注釈値がこのAnnotationElement
に存在する場合、true
を返します。- パラメータ:
name
- 検索する注釈インタフェースのメソッドの名前(null
ではない)- 戻り値:
- メソッドが存在する場合は
true
、存在しない場合はfalse
-
getAnnotation
public final <A> A getAnnotation(Class<? extends Annotation> annotationType)同じ名前のAnnotationElement
が存在する場合は、指定された型の最初の注釈を戻し、それ以外の場合はnull
を戻します。- 型パラメータ:
A
- 問合せを行い、存在する場合はそれを戻す注釈のタイプ- パラメータ:
annotationType
-null
ではなく、注釈型に対応するClass object
- 戻り値:
- 指定された注釈タイプのこの要素注釈(存在する場合)、それ以外の場合は
null
-
getTypeId
public long getTypeId()このAnnotationElement
のタイプIDを返します。IDは、Java Virtual Machine (JVM)のタイプの一意の識別子です。 IDがJVMインスタンス間で同じでない可能性があります。
- 戻り値:
- 型ID (負ではない)
-