- 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(类<? extends Annotation> annotationType)
创建用于动态定义事件的注释元素。AnnotationElement(类<? extends Annotation> annotationType, Object value)
创建用于动态定义事件的注释元素。AnnotationElement(类<? extends Annotation> annotationType, Map<String,Object> values)
创建用于动态定义事件的注释元素。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 <A> A
getAnnotation(类<? extends Annotation> annotationType)
如果存在具有相同名称的AnnotationElement
,则返回指定类型的第一个注释,否则null
。List<AnnotationElement>
getAnnotationElements()
返回此AnnotationElement
的注释元素的不可变列表。long
getTypeId()
返回此AnnotationElement
的类型ID。String
getTypeName()
返回与此AnnotationElement
对应的注释类型的完全限定名称(例如,"jdk.jfr.Label"
)。Object
getValue(String name)
返回此AnnotationElement
的值。List<ValueDescriptor>
getValueDescriptors()
返回描述此AnnotationElement
的注释值的不可变描述符列表。List<Object>
getValues()
以与此AnnotationElement
的值描述符匹配的顺序返回注释值的不可变列表。boolean
hasValue(String name)
返回true
如果具有指定名称的标注值,在此存在AnnotationElement
。
-
-
-
构造方法详细信息
-
AnnotationElement
public AnnotationElement(类<? 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
- 如果value / key为null
,则使用不支持的值类型,或者使用与annotationType
中的签名不匹配的值/键
-
AnnotationElement
public AnnotationElement(类<? 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
- 如果value / key为null
,则使用不支持的值类型,或者使用与annotationType
中的签名不匹配的值/键
-
AnnotationElement
public AnnotationElement(类<? 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(类<? extends Annotation> annotationType)
如果存在具有相同名称的AnnotationElement
,则返回指定类型的第一个注释,否则null
。- 参数类型
-
A
- 要查询的注释的类型,如果存在则返回 - 参数
-
annotationType
-所述Class object
对应于注释类型,而不是null
- 结果
-
如果指定的注释类型存在,则此元素的注释,否则为
null
-
getTypeId
public long getTypeId()
返回此AnnotationElement
的类型ID。ID是Java虚拟机(JVM)中类型的唯一标识符。 JVM实例之间的ID可能不同。
- 结果
- 类型ID,不是负面的
-
-