模块  jdk.jfr
软件包  jdk.jfr

Class ValueDescriptor


  • public final class ValueDescriptor
    extends Object
    描述事件字段和注释元素。
    从以下版本开始:
    9
    • 构造方法详细信息

      • 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