クラスAnnotationElement

java.lang.Object
jdk.jfr.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(Class<? extends Annotation> annotationType)
    動的に定義されるイベントに使用する注釈要素を作成します。
    AnnotationElement(Class<? extends Annotation> annotationType, Object value)
    動的に定義されるイベントに使用する注釈要素を作成します。
    AnnotationElement(Class<? extends Annotation> annotationType, Map<String,Object> values)
    動的に定義されるイベントに使用する注釈要素を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final <A> A
    getAnnotation(Class<? extends Annotation> annotationType)
    同じ名前のAnnotationElementが存在する場合は、指定された型の最初の注釈を戻し、それ以外の場合はnullを戻します。
    このAnnotationElementの注釈要素の不変のリストを返します。
    long
    このAnnotationElementのタイプIDを返します。
    このAnnotationElement (たとえば、"jdk.jfr.Label")に対応する注釈型の完全修飾名を返します。
    このAnnotationElementの値を返します。
    このAnnotationElementの注釈値を説明する記述子の不変のリストを返します。
    このAnnotationElementの値記述子と一致する順序で、注釈値の不変なリストを返します。
    boolean
    指定された名前の注釈値がこのAnnotationElementに存在する場合、trueを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • AnnotationElement

      public AnnotationElement(Class<? extends Annotation> annotationType, Map<String,Object> values)
      動的に定義されるイベントに使用する注釈要素を作成します。

      サポートされている値のタイプは、byteintshortlongdoublefloatbooleancharおよび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)
      動的に定義されるイベントに使用する注釈要素を作成します。

      サポートされている値のタイプは、byteintshortlongdoublefloatbooleancharおよびStringです。 列挙型、配列およびクラスはサポートされていません。

      annotationTypeに(直接、間接的に表される、または関連付けられている)という注釈がある場合、それらの注釈が再帰的に含まれます。 ただし、annotationTypeと再帰的に見つかった注釈の両方にMetadataDefinitionアノテーションが必要です。

      イベントを静的に定義するには、Eventクラスを参照してください。

      パラメータ:
      annotationType - java.lang.annotation.Annotation,を拡張するインタフェースがnullではありません
      value - 指定されたannotationTypevalueメソッドに一致する値
      スロー:
      IllegalArgumentException - 値/キーがnullの場合、サポートされていない値タイプが使用されるか、annotationTypeのシグネチャに一致しない値/キーが使用されます
    • AnnotationElement

      public AnnotationElement(Class<? extends Annotation> annotationType)
      動的に定義されるイベントに使用する注釈要素を作成します。

      サポートされている値のタイプは、byteshortintlongdoublefloatbooleancharおよびStringです。 列挙型、配列およびクラスはサポートされていません。

      annotationTypeに(直接的に存在するか、間接的に存在するか、)という注釈がある場合、それらの注釈が再帰的に含まれます。 ただし、annotationTypeと再帰的に見つかった注釈の両方にMetadataDefinitionアノテーションが必要です。

      イベントを静的に定義するには、Eventクラスを参照してください。

      パラメータ:
      annotationType - nullではなくjava.lang.annotation.Annotationを拡張するインタフェース
  • メソッドの詳細

    • 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)
      指定された名前の注釈値がこの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 (負ではない)