java.lang.Object
jdk.jfr.Event
事件的基类,将被子类化以定义事件及其字段。
以下示例显示了如何实现 Event 类。
public class Example {
@Label("Hello World")
@Description("Helps programmer getting started")
static class HelloWorld extends Event {
@Label("Message")
String message;
}
public static void main(String... args) {
HelloWorld event = new HelloWorld();
event.message = "hello, world!";
event.commit();
}
}
在分配事件并填充其字段成员后,可以使用 commit() 方法将其写入飞行记录器系统。
默认情况下,启用事件。要禁用事件,请使用 @Enabled(false) 注释 Event 类。
支持的字段类型是 Java 原语:boolean、char、byte、short、int、long、float 和 double。支持的引用类型是:String、Thread 和 Class。数组、枚举和其他引用类型被默默地忽略并且不包括在内。可以使用 transient 修饰符排除属于受支持类型的字段。静态字段,即使是受支持的类型,也不包括在内。
使用注解时,工具可以以有意义的方式可视化数据(例如,Label、Description 和 Timespan)。应用于 Event 类或其字段的注释如果存在(间接、直接或关联),则包含 MetadataDefinition 注释,并且它们不包含枚举、数组或类。
收集数据以存储在事件中可能很昂贵。 shouldCommit() 方法可用于验证在调用 commit() 方法时事件实例是否实际写入系统。如果 shouldCommit() 返回 false,则可以避免这些操作。
- 自从:
- 9
-
构造方法详细信息
-
Event
protected Event()唯一构造方法,供子类构造方法调用,通常是隐式的。
-
-
方法详情
-
begin
public final void begin()开始此事件的计时。 -
end
public final void end()结束本次活动的计时。end方法必须在begin方法之后调用。 -
commit
public final void commit()将字段值、时间戳和事件持续时间写入飞行记录器系统。如果事件以调用
begin方法开始,但不以显式调用end方法结束,则事件在调用commit方法时结束。 -
isEnabled
public final boolean isEnabled()如果至少有一个记录正在运行,则返回true,并且此事件的启用设置设置为true,否则返回false。- 返回:
true如果启用事件,false否则
-
shouldCommit
public final boolean shouldCommit()如果此事件的启用设置设置为true并且持续时间在事件的阈值内,则返回true,否则返回false。阈值是所有正在运行的记录的最小阈值。- 返回:
true如果事件可以写入飞行记录器系统,false否则
-
set
设置字段值。仅当使用
EventFactory类动态定义事件时才适用。提供的
index对应于传递给EventFactory类的工厂方法的ValueDescriptor对象的索引。- 参数:
index- 传递给EventFactory.create(java.util.List, java.util.List)的字段的索引value- 要设置的值,可以是null- 抛出:
UnsupportedOperationException- 如果它不是动态生成的事件IndexOutOfBoundsException- 如果index小于0或大于或等于为事件指定的字段数- 参见:
-