- java.lang.Object
-
- jdk.jfr.ValueDescriptor
-
public final class ValueDescriptor extends Object
描述事件字段和注释元素。- 从以下版本开始:
- 9
-
-
构造方法摘要
构造方法 构造器 描述 ValueDescriptor(类<?> type, String name)构造一个值描述符,用于动态创建事件类型和注释。ValueDescriptor(类<?> type, String name, List<AnnotationElement> annotations)构造一个值描述符,用于动态创建事件类型和注释。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 <A extends Annotation>
AgetAnnotation(类<A> annotationType)如果具有相同名称的注释元素直接存在于此值描述符,则返回指定类型的第一个注释,否则null。List<AnnotationElement>getAnnotationElements()返回此值描述符的注释元素的不可变列表。StringgetContentType()返回一个文本标识符,指定如何解释或格式化此ValueDescriptor表示的值。StringgetDescription()返回描述该值的句子(例如,"Maximum throughput in the transaction system. Value is reset after each new batch.")。List<ValueDescriptor>getFields()如果类型是复杂的,则返回值描述符的不可变列表,否则返回空列表。StringgetLabel()返回描述该值的可读名称(例如,"Maximum Throughput")。StringgetName()返回值的名称(例如,"maxThroughput")。longgetTypeId()返回Java虚拟机(JVM)中类型的唯一ID。StringgetTypeName()返回与此值描述符关联的类型的完全限定类名。booleanisArray()返回此值描述符是否为数组类型。
-
-
-
构造方法详细信息
-
ValueDescriptor
public ValueDescriptor(类<?> type, String name)
构造一个值描述符,用于动态创建事件类型和注释。
支持以下类型:
-
byte.class -
short.class -
int.class -
long.class -
char.class -
float.class -
double.class -
boolean.class -
String.class -
Class.class -
Thread.class
该名称必须是有效的Java标识符(例如,
"maxThroughput")。 有关更多信息,请参见3.8 Java语言规范。- 参数
-
type- 类型,而不是null -
name- 名称,而不是null - 异常
-
SecurityException- 如果存在安全管理器且呼叫者没有FlightRecorderPermission("registerEvent")
-
-
ValueDescriptor
public ValueDescriptor(类<?> type, String name, List<AnnotationElement> annotations)
构造一个值描述符,用于动态创建事件类型和注释。
支持以下类型:
-
byte.class -
short.class -
int.class -
long.class -
char.class -
float.class -
double.class -
boolean.class -
String.class -
Class.class -
Thread.class
该名称必须是有效的Java标识符(例如,
"maxThroughput")。 有关更多信息,请参见3.8 Java语言规范。- 参数
-
type- 类型,而不是null -
name- 名称,而不是null -
annotations- 值描述符上的注释,而不是null - 异常
-
SecurityException- 如果存在安全管理器且调用者没有FlightRecorderPermission("registerEvent")
-
-
-
方法详细信息
-
getLabel
public String getLabel()
返回描述该值的可读名称(例如,"Maximum Throughput")。- 结果
-
一个人类可读的名称,如果不存在
null
-
getName
public String getName()
返回值的名称(例如,"maxThroughput")。- 结果
-
这个名字,不是
null
-
getDescription
public String getDescription()
返回描述该值的句子(例如,"Maximum throughput in the transaction system. Value is reset after each new batch.")。- 结果
-
描述,或
null如果不存在
-
getContentType
public String getContentType()
返回一个文本标识符,指定如何解释或格式化此ValueDescriptor表示的值。例如,如果值描述符的类型为
float且事件值为0.5f,则内容类型为"jdk.jfr.Percentage"向客户端提示该值为百分比,并且应将其呈现为"50%"。JDK提供以下预定义内容类型:
- jdk.jfr.Percentage
- jdk.jfr.Timespan
- jdk.jfr.Timestamp
- jdk.jfr.Frequency
- jdk.jfr.Flag
- jdk.jfr.MemoryAddress
- jdk.jfr.DataAmount
- jdk.jfr.NetworkAddress
可以使用
ContentType类创建用户定义的内容类型。- 结果
-
内容类型,或
null如果不存在 - 另请参见:
-
ContentType
-
getTypeName
public String getTypeName()
返回与此值描述符关联的类型的完全限定类名。- 结果
-
类型名称,而不是
null - 另请参见:
-
getTypeId()
-
getTypeId
public long getTypeId()
返回Java虚拟机(JVM)中类型的唯一ID。 JVM实例之间的ID可能不同。- 结果
- 类型ID,不是负面的
-
isArray
public boolean isArray()
返回此值描述符是否为数组类型。- 结果
-
true如果是数组类型,false
-
getAnnotation
public <A extends Annotation> A getAnnotation(类<A> annotationType)
如果为此值描述符直接存在具有相同名称的注释元素,则返回指定类型的第一个注释,否则null。- 参数类型
-
A- 要查询的注释的类型,如果存在则返回 - 参数
-
annotationType- 与注释类型对应的Class对象,而不是null - 结果
-
如果直接存在,则此元素的指定注释类型的注释,否则为
null
-
getAnnotationElements
public List<AnnotationElement> getAnnotationElements()
返回此值描述符的注释元素的不可变列表。- 结果
-
注释列表,而不是
null
-
getFields
public List<ValueDescriptor> getFields()
如果类型是复杂的,则返回值描述符的不可变列表,否则返回空列表。- 结果
-
值描述符列表,而不是
null
-
-