- java.lang.Object
-
- jdk.jfr.consumer.RecordedObject
-
- 已知直接子类:
-
RecordedClass
,RecordedClassLoader
,RecordedEvent
,RecordedFrame
,RecordedMethod
,RecordedStackTrace
,RecordedThread
,RecordedThreadGroup
public class RecordedObjectextends Object
由一个或多个字段组成的复杂数据类型。此类提供了通过传递点
"."
分隔的String
对象(例如,"aaa.bbb"
)来选择和查询嵌套对象的方法。 方法从左到右评估嵌套对象,如果部件是null
,则抛出NullPointerException
。- 从以下版本开始:
- 9
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
getBoolean(String name)
返回类型为boolean
的字段的值。byte
getByte(String name)
返回类型为byte
的字段的值。char
getChar(String name)
返回类型为char
的字段的值。RecordedClass
getClass(String name)
返回类型为类
的字段的值。double
getDouble(String name)
返回类型为double
的字段的值,或者通过扩展转换可转换为类型double
的另一种基本类型的值。Duration
getDuration(String name)
返回时间跨度字段的值。List<ValueDescriptor>
getFields()
返回此对象的字段的不可变列表。float
getFloat(String name)
通过扩展转换返回类型为float
的字段或可转换为类型float
的其他基本类型的字段的值。Instant
getInstant(String name)
返回时间戳字段的值。int
getInt(String name)
返回类型为int
的字段的值,或者通过扩展转换可转换为类型int
的另一种基本类型的值。long
getLong(String name)
返回类型为long
的字段的值,或者通过扩展转换可转换为类型long
的另一种基本类型的值。short
getShort(String name)
返回类型为short
的字段的值或通过扩展转换可转换为类型short
的其他基本类型的值。String
getString(String name)
返回类型为String
的字段的值。RecordedThread
getThread(String name)
返回类型为Thread
的字段的值。<T> T
getValue(String name)
返回具有给定名称的字段的值。boolean
hasField(String name)
返回true
如果具有给定名称的字段存在,false
否则。String
toString()
返回此对象的文本表示形式。
-
-
-
方法详细信息
-
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)
-
-