Module jdk.jfr
Package jdk.jfr.consumer

Class RecordedObject

java.lang.Object
jdk.jfr.consumer.RecordedObject
直接已知的子类:
RecordedClass, RecordedClassLoader, RecordedEvent, RecordedFrame, RecordedMethod, RecordedStackTrace, RecordedThread, RecordedThreadGroup

由一个或多个字段组成的复杂数据类型。

该类提供了通过传递一个用点"."分隔的String对象(例如,"aaa.bbb")来选择和查询嵌套对象的方法。方法从左到右评估嵌套对象,如果某个部分为null,则会抛出NullPointerException

自 JDK 版本:
9
  • Method Details

    • hasField

      public boolean hasField(String name)
      如果具有给定名称的字段存在,则返回true,否则返回false

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

      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      如果字段存在,则返回true,否则返回false
      参见:
    • getValue

      public final <T> T getValue(String name)
      返回具有给定名称的字段的值。

      返回类型可以是原始类型或RecordedObject的子类。

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

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      示例

      if (event.hasField("intValue")) {
          int intValue = event.getValue("intValue");
          System.out.println("Int value: " + intValue);
      }
      
      if (event.hasField("objectClass")) {
          RecordedClass clazz = event.getValue("objectClass");
          System.out.println("Class name: " + clazz.getName());
      }
      
      if (event.hasField("sampledThread")) {
          RecordedThread sampledThread = event.getValue("sampledThread");
          System.out.println("Sampled thread: " + sampledThread.getJavaName());
      }
      
      类型参数:
      T - 返回类型
      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      值,可以为null
      抛出:
      IllegalArgumentException - 如果不存在名为name的字段
      参见:
    • getFields

      public List<ValueDescriptor> getFields()
      返回此对象的字段的不可变列表。
      返回:
      字段,不能为空
    • getBoolean

      public final boolean getBoolean(String name)
      返回boolean类型字段的值。

      可以使用"."来索引嵌套对象(例如"aaa.bbb")。

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      字段的值,truefalse
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是boolean类型
      参见:
    • getByte

      public final byte getByte(String name)
      返回byte类型字段的值。

      可以使用"."来索引嵌套对象(例如"foo.bar")。

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      字段的值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是byte类型
      参见:
    • getChar

      public final char getChar(String name)
      返回char类型字段的值。

      可以使用"."来索引嵌套对象(例如"aaa.bbb")。

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      字段的值作为char
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是char类型
      参见:
    • getShort

      public final short getShort(String name)
      返回short类型字段的值或可通过扩展转换转换为short类型的另一个原始类型的值。

      此方法可用于以下类型:shortbyte

      如果字段具有@Unsigned注释,并且比short更窄,则值将作为无符号值返回。

      可以使用"."来索引嵌套对象(例如"aaa.bbb")。

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段的名称,不能为空
      返回:
      转换为short类型的字段值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法通过扩展转换转换为short类型
      参见:
    • getInt

      public final int getInt(String name)
      返回int类型字段的值或可通过扩展转换转换为int类型的另一个原始类型的值。

      此方法可用于以下类型的字段:intshortcharbyte

      如果字段具有@Unsigned注释,并且比int更窄,则值将作为无符号值返回。

      可以使用"."来索引嵌套对象(例如"aaa.bbb")。

      字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      将字段值转换为int类型的值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法通过扩展转换为int类型
      参见:
    • getFloat

      public final float getFloat(String name)
      返回float类型字段的值,或者可以通过扩展转换为float类型的另一种原始类型的值。

      此方法可用于以下类型的字段:floatlongintshortcharbyte

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      将字段值转换为float类型的值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法通过扩展转换为float类型
      参见:
    • getLong

      public final long getLong(String name)
      返回long类型字段的值,或者可以通过扩展转换为long类型的另一种原始类型的值。

      此方法可用于以下类型的字段:longintshortcharbyte

      如果字段具有@Unsigned注释,并且比long类型窄,则该值将作为无符号值返回。

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      将字段值转换为long类型的值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法通过扩展转换为long类型
      参见:
    • getDouble

      public final double getDouble(String name)
      返回double类型字段的值,或者可以通过扩展转换为double类型的另一种原始类型的值。

      此方法可用于以下类型的字段:doublefloatlongintshortcharbyte

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      将字段值转换为double类型的值
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法通过扩展转换为double类型
      参见:
    • getString

      public final String getString(String name)
      返回String类型字段的值。

      可以使用"."来索引嵌套对象(例如,"foo.bar")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      将字段值作为String返回,可以为null
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是String类型
      参见:
    • getDuration

      public final Duration getDuration(String name)
      返回时间跨度字段的值。

      此方法可用于带有@Timespan注释的字段,以及以下类型的字段:longintshortcharbyte

      如果提交的事件值为Long.MAX_VALUE,无论@Timespan设置的单位是什么,此方法都将返回ChronoUnit.FOREVER

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      作为Duration表示的时间跨度,不能为空
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法转换为Duration对象
      参见:
    • getInstant

      public final Instant getInstant(String name)
      返回时间戳字段的值。

      此方法可用于带有@Timestamp注释的字段,以及以下类型的字段:longintshortcharbyte

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      作为Instant表示的时间戳,不能为空
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段值无法转换为Instant对象
      参见:
    • getClass

      public final RecordedClass getClass(String name)
      返回Class类型字段的值。

      可以使用"."来索引嵌套对象(例如,"aaa.bbb")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      作为RecordedClass表示的字段值,可以为null
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是Class类型
      参见:
    • getThread

      public final RecordedThread getThread(String name)
      返回Thread类型字段的值。

      可以使用"."来索引嵌套对象(例如,"foo.bar")。

      字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。

      参数:
      name - 要获取的字段名称,不能为空
      返回:
      作为RecordedThread对象表示的字段值,可以为null
      抛出:
      IllegalArgumentException - 如果字段不存在,或字段不是Thread类型
      参见:
    • toString

      public final String toString()
      返回此对象的文本表示。
      覆盖:
      toString 在类 Object
      返回:
      此对象的文本描述