モジュール jdk.jfr
パッケージ 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

        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 (負ではない)