java.lang.Object
jdk.jfr.EventType
描述了一个事件,其字段,设置和注释。
以下示例显示了如何使用EventType
类打印有关事件的元数据。
for (EventType eventType : FlightRecorder.getFlightRecorder().getEventTypes()) {
System.out.println("事件类型: " + eventType.getName());
if (eventType.getLabel() != null) {
System.out.println("标签: " + eventType.getLabel());
}
if (eventType.getDescription() != null) {
System.out.println("描述: " + eventType.getDescription());
}
StringJoiner s = new StringJoiner(" / ");
for (String category : eventType.getCategoryNames()) {
s.add(category);
}
System.out.println("类别: " + s);
System.out.println("字段: " + eventType.getFields().size());
System.out.println("注释: " + eventType.getAnnotationElements().size());
System.out.println("设置: " + eventType.getSettingDescriptors().size());
System.out.println("已启用: " + eventType.isEnabled());
System.out.println();
}
- 自版本:
- 9
-
Method Summary
Modifier and TypeMethodDescription<A extends Annotation>
AgetAnnotation
(Class<A> annotationClass) 如果直接存在具有相同名称的注释元素,则返回指定类型的第一个注释,否则返回null
。返回此事件类型的注释元素的不可变列表。返回构成此事件类型类别的人类可读名称列表(例如,"Java应用程序"
,"统计信息"
)。返回描述事件类的简短句子。static EventType
getEventType
(Class<? extends Event> eventClass) 返回事件类的事件类型,如果不存在则返回null
。返回具有指定名称的字段,如果不存在则返回null
。返回描述此事件类型的事件字段的描述符的不可变列表。long
getId()
返回此事件类型在Java虚拟机(JVM)中的唯一ID。getLabel()
返回人类可读的名称(例如,"CPU负载"
)。getName()
返回事件的标识符(例如,"jdk.CPULoad"
)。返回描述此事件类型的可用事件设置的设置描述符的不可变列表。boolean
如果事件已启用且至少有一个记录正在运行,则返回true
,否则返回false
。
-
Method Details
-
getFields
返回描述此事件类型的事件字段的描述符的不可变列表。- 返回:
-
字段描述符列表,不为
null
-
getField
返回具有指定名称的字段,如果不存在则返回null
。可以使用
"."
来索引嵌套字段(例如"thread.group.parent.name
)。- 参数:
-
name
- 要获取的字段的名称,不为null
- 返回:
-
描述字段的值描述符,如果指定名称的字段不存在则返回
null
-
getName
返回事件的标识符(例如,"jdk.CPULoad"
)。如果未使用
Name
注释设置事件类的完全限定名称,则标识符是事件类的完全限定名称。- 返回:
-
名称,不为
null
- 参见:
-
getLabel
返回人类可读的名称(例如,"CPU负载"
)。事件类的标签可以使用
Label
设置。- 返回:
-
标签,如果未设置标签则返回
null
- 参见:
-
getId
public long getId()返回此事件类型在Java虚拟机(JVM)中的唯一ID。- 返回:
- 在JVM中使用的ID
-
getAnnotationElements
返回此事件类型的注释元素的不可变列表。- 返回:
-
注释的不可变列表,如果不存在注释则返回空列表,不为
null
-
isEnabled
public boolean isEnabled()如果事件已启用且至少有一个记录正在运行,则返回true
,否则返回false
。默认情况下,事件已启用。可以通过将启用设置为
true
或false
来以编程方式启用或禁用事件,也可以通过使用@Enabled(false)
注释来禁用事件。- 返回:
- 如果事件已启用则返回true,否则返回false
- 参见:
-
getDescription
返回描述事件类的简短句子。事件类的描述可以使用
Description
设置。- 返回:
-
描述,如果不存在描述则返回
null
- 参见:
-
getAnnotation
如果直接存在具有相同名称的注释元素,则返回指定类型的第一个注释,否则返回null
。- 类型参数:
-
A
- 要查询并返回的注释类型 - 参数:
-
annotationClass
- 对应于注释类型的Class
对象,不为null
- 返回:
-
如果直接存在指定注释类型的注释则返回此元素的注释,否则返回
null
-
getEventType
返回事件类的事件类型,如果不存在则返回null
。- 参数:
-
eventClass
- 事件类,不为null
- 返回:
- 事件类,如果类不存在则返回null
- 抛出:
-
IllegalArgumentException
- 如果eventClass
是抽象类 -
IllegalStateException
- 如果类被注释为Registered(false)
,但未手动注册
-
getSettingDescriptors
返回描述此事件类型的可用事件设置的设置描述符的不可变列表。- 返回:
-
此事件类型的设置描述符列表,不为
null
-
getCategoryNames
返回构成此事件类型类别的人类可读名称列表(例如,"Java应用程序"
,"统计信息"
)。- 返回:
-
类别名称的不可变列表,如果未设置类别则返回一个包含
"未分类"
名称的列表 - 参见:
-