- java.lang.Object
-
- jdk.jfr.consumer.RecordedObject
-
- 已知直接子类:
-
RecordedClass,RecordedClassLoader,RecordedEvent,RecordedFrame,RecordedMethod,RecordedStackTrace,RecordedThread,RecordedThreadGroup
public class RecordedObject extends Object
由一个或多个字段组成的复杂数据类型。此类提供了通过传递点
"."分隔的String对象(例如,"aaa.bbb")来选择和查询嵌套对象的方法。 方法从左到右评估嵌套对象,如果部件是null,则抛出NullPointerException。- 从以下版本开始:
- 9
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleangetBoolean(String name)返回类型为boolean的字段的值。bytegetByte(String name)返回类型为byte的字段的值。chargetChar(String name)返回类型为char的字段的值。RecordedClassgetClass(String name)返回类型为类的字段的值。doublegetDouble(String name)返回类型为double的字段的值,或者通过扩展转换可转换为类型double的另一种基本类型的值。DurationgetDuration(String name)返回时间跨度字段的值。List<ValueDescriptor>getFields()返回此对象的字段的不可变列表。floatgetFloat(String name)通过扩展转换返回类型为float的字段或可转换为类型float的其他基本类型的字段的值。InstantgetInstant(String name)返回时间戳字段的值。intgetInt(String name)返回类型为int的字段的值,或者通过扩展转换可转换为类型int的另一种基本类型的值。longgetLong(String name)返回类型为long的字段的值,或者通过扩展转换可转换为类型long的另一种基本类型的值。shortgetShort(String name)返回类型为short的字段的值或通过扩展转换可转换为类型short的其他基本类型的值。StringgetString(String name)返回类型为String的字段的值。RecordedThreadgetThread(String name)返回类型为Thread的字段的值。<T> TgetValue(String name)返回具有给定名称的字段的值。booleanhasField(String name)返回true如果具有给定名称的字段存在,false否则。StringtoString()返回此对象的文本表示形式。
-
-
-
方法详细信息
-
hasField
public boolean hasField(String name)
返回true如果具有给定名称的字段存在,false否则。- 参数
-
name- 要获取的字段的名称,而不是null - 结果
-
true如果该字段存在,否则为false。 - 另请参见:
-
getFields()
-
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.getName()); }- 参数类型
-
T- 返回类型 - 参数
-
name- 要获取的字段,而不是null - 结果
-
该值,可以是
null - 异常
-
IllegalArgumentException- 如果不存在名为name字段 - 另请参见:
-
hasField(String)
-
getFields
public List<ValueDescriptor> getFields()
返回此对象的字段的不可变列表。- 结果
-
字段,而不是
null
-
getBoolean
public final boolean getBoolean(String name)
返回类型为boolean的字段的值。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 要获取的字段的名称,而不是null - 结果
-
该字段的值,
true或false - 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是boolean - 另请参见:
-
hasField(String),getValue(String)
-
getByte
public final byte getByte(String name)
返回类型为byte的字段的值。可以使用
"."(例如,"foo.bar")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获得的字段,而不是null - 结果
- 该领域的价值
- 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是byte - 另请参见:
-
hasField(String),getValue(String)
-
getChar
public final char getChar(String name)
返回类型为char的字段的值。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获取的字段,而不是null - 结果
-
该字段的值为
char - 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是char - 另请参见:
-
hasField(String),getValue(String)
-
getShort
public final short getShort(String name)
通过扩展转换返回类型为short的字段或可转换为类型short的其他基本类型的值。此方法可用于以下类型:
short和byte。如果该字段具有
@Unsigned注释并且类型比short窄,则该值将作为无符号返回。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获得的字段,不是null - 结果
-
转换为类型
short的字段的值 - 异常
-
IllegalArgumentException- 如果该字段不存在,或者通过扩展转换无法将字段值转换为类型short - 另请参见:
-
hasField(String)
-
getInt
public final int getInt(String name)
返回类型为int的字段的值或通过扩展转换可转换为类型int的其他基本类型的值。:此方法能够在下列类型的领域中使用
int,short,char,和byte。如果该字段具有
@Unsigned注释并且类型比int窄,则该值将作为无符号返回。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 要获取的字段,而不是null - 结果
-
转换为类型
int的字段的值 - 异常
-
IllegalArgumentException- 如果该字段不存在,或者通过扩展转换无法将字段值转换为类型int - 另请参见:
-
hasField(String)
-
getFloat
public final float getFloat(String name)
通过扩展转换返回类型为float的字段或另一种可转换为类型float的基本类型的值。:此方法能够在下列类型的领域中使用
float,long,int,short,char,和byte。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 要获取的字段,而不是null - 结果
-
转换为类型
float的字段的值 - 异常
-
IllegalArgumentException- 如果该字段不存在,或者通过扩展转换无法将字段值转换为类型float - 另请参见:
-
hasField(String)
-
getLong
public final long getLong(String name)
返回类型为long的字段的值,或者通过扩展转换可转换为类型long的另一种基本类型的值。:此方法能够在下列类型的领域中使用
long,int,short,char,和byte。如果该字段具有
@Unsigned注释并且类型比long窄,则该值将作为无符号返回。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获得的字段,而不是null - 结果
-
转换为类型
long的字段的值 - 异常
-
IllegalArgumentException- 如果该字段不存在,或者字段值无法通过扩展转换转换为类型long - 另请参见:
-
hasField(String)
-
getDouble
public final double getDouble(String name)
返回类型为double的字段或可通过扩展转换转换为类型double的其他基本类型的值。:此方法能够在下列类型的领域中使用
double,float,long,int,short,char,和byte。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 要获取的字段,而不是null - 结果
-
该字段的值转换为类型
double - 异常
-
IllegalArgumentException- 如果该字段不存在,或者通过扩展转换无法将字段值转换为类型double - 另请参见:
-
hasField(String)
-
getString
public final String getString(String name)
返回类型为String的字段的值。可以使用
"."(例如,"foo.bar")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获得的字段,而不是null - 结果
-
该字段的值为
String,可以是null - 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是String - 另请参见:
-
hasField(String)
-
getDuration
public final Duration getDuration(String name)
返回时间跨度字段的值。这种方法可以与注释的领域中使用
@Timespan,以及下列类型的:long,int,short,char,和byte。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获取的字段,而不是null - 结果
-
时间跨度表示为
Duration,而不是null - 异常
-
IllegalArgumentException- 如果该字段不存在,或者该字段值无法转换为Duration对象 - 另请参见:
-
hasField(String)
-
getInstant
public final Instant getInstant(String name)
返回时间戳字段的值。这种方法可以与注释的领域中使用
@Timestamp,以及下列类型的:long,int,short,char和byte。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获得的字段,而不是null - 结果
-
timstamp表示为
Instant,而不是null - 异常
-
IllegalArgumentException- 如果该字段不存在,或者该字段值无法转换为Instant对象 - 另请参见:
-
hasField(String)
-
getClass
public final RecordedClass getClass(String name)
返回类型为类的字段的值。可以使用
"."(例如,"aaa.bbb")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 要获取的字段,而不是null - 结果
-
该字段的值为
RecordedClass,可以是null - 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是类 - 另请参见:
-
hasField(String)
-
getThread
public final RecordedThread getThread(String name)
返回类型为Thread的字段的值。可以使用
"."(例如,"foo.bar")索引嵌套对象。在将来的JDK版本中,字段可能会更改或删除。 此方法的调用方的最佳做法是在尝试访问之前验证字段。
- 参数
-
name- 获取的字段,而不是null - 结果
-
该字段的值为
RecordedThread对象,可以是null - 异常
-
IllegalArgumentException- 如果该字段不存在,或该字段的类型不是Thread - 另请参见:
-
hasField(String)
-
-