次の例は、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) 動的に定義されるイベントに使用する注釈要素を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明final <A> AgetAnnotation(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
-
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 (負ではない)
-