- 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()
返回此值描述符的注释元素的不可变列表。String
getContentType()
返回一个文本标识符,指定如何解释或格式化此ValueDescriptor
表示的值。String
getDescription()
返回描述该值的句子(例如,"Maximum throughput in the transaction system. Value is reset after each new batch."
)。List<ValueDescriptor>
getFields()
如果类型是复杂的,则返回值描述符的不可变列表,否则返回空列表。String
getLabel()
返回描述该值的可读名称(例如,"Maximum Throughput"
)。String
getName()
返回值的名称(例如,"maxThroughput"
)。long
getTypeId()
返回Java虚拟机(JVM)中类型的唯一ID。String
getTypeName()
返回与此值描述符关联的类型的完全限定类名。boolean
isArray()
返回此值描述符是否为数组类型。
-
-
-
构造方法详细信息
-
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
-
-