Module jdk.jfr
Package jdk.jfr

Class EventType

java.lang.Object
jdk.jfr.EventType

public final class EventType extends Object
描述了一个事件,其字段,设置和注释。

以下示例显示了如何使用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 Details

    • getFields

      public List<ValueDescriptor> getFields()
      返回描述此事件类型的事件字段的描述符的不可变列表。
      返回:
      字段描述符列表,不为null
    • getField

      public ValueDescriptor getField(String name)
      返回具有指定名称的字段,如果不存在则返回null

      可以使用"."来索引嵌套字段(例如"thread.group.parent.name)。

      参数:
      name - 要获取的字段的名称,不为null
      返回:
      描述字段的值描述符,如果指定名称的字段不存在则返回null
    • getName

      public String getName()
      返回事件的标识符(例如,"jdk.CPULoad")。

      如果未使用Name注释设置事件类的完全限定名称,则标识符是事件类的完全限定名称。

      返回:
      名称,不为null
      参见:
    • getLabel

      public String getLabel()
      返回人类可读的名称(例如,"CPU负载")。

      事件类的标签可以使用Label设置。

      返回:
      标签,如果未设置标签则返回null
      参见:
    • getId

      public long getId()
      返回此事件类型在Java虚拟机(JVM)中的唯一ID。
      返回:
      在JVM中使用的ID
    • getAnnotationElements

      public List<AnnotationElement> getAnnotationElements()
      返回此事件类型的注释元素的不可变列表。
      返回:
      注释的不可变列表,如果不存在注释则返回空列表,不为null
    • isEnabled

      public boolean isEnabled()
      如果事件已启用且至少有一个记录正在运行,则返回true,否则返回false

      默认情况下,事件已启用。可以通过将启用设置为truefalse来以编程方式启用或禁用事件,也可以通过使用@Enabled(false)注释来禁用事件。

      返回:
      如果事件已启用则返回true,否则返回false
      参见:
    • getDescription

      public String getDescription()
      返回描述事件类的简短句子。

      事件类的描述可以使用Description设置。

      返回:
      描述,如果不存在描述则返回null
      参见:
    • getAnnotation

      public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
      如果直接存在具有相同名称的注释元素,则返回指定类型的第一个注释,否则返回null
      类型参数:
      A - 要查询并返回的注释类型
      参数:
      annotationClass - 对应于注释类型的Class对象,不为null
      返回:
      如果直接存在指定注释类型的注释则返回此元素的注释,否则返回null
    • getEventType

      public static EventType getEventType(Class<? extends Event> eventClass)
      返回事件类的事件类型,如果不存在则返回null
      参数:
      eventClass - 事件类,不为null
      返回:
      事件类,如果类不存在则返回null
      抛出:
      IllegalArgumentException - 如果eventClass是抽象类
      IllegalStateException - 如果类被注释为Registered(false),但未手动注册
    • getSettingDescriptors

      public List<SettingDescriptor> getSettingDescriptors()
      返回描述此事件类型的可用事件设置的设置描述符的不可变列表。
      返回:
      此事件类型的设置描述符列表,不为null
    • getCategoryNames

      public List<String> getCategoryNames()
      返回构成此事件类型类别的人类可读名称列表(例如,"Java应用程序""统计信息")。
      返回:
      类别名称的不可变列表,如果未设置类别则返回一个包含"未分类"名称的列表
      参见: