- 直接已知的子类:
-
RecordedClass
,RecordedClassLoader
,RecordedEvent
,RecordedFrame
,RecordedMethod
,RecordedStackTrace
,RecordedThread
,RecordedThreadGroup
该类提供了通过传递一个用点"."
分隔的String
对象(例如,"aaa.bbb"
)来选择和查询嵌套对象的方法。方法从左到右评估嵌套对象,如果某个部分为null
,则会抛出NullPointerException
。
- 自 JDK 版本:
- 9
-
Method Summary
Modifier and TypeMethodDescriptionfinal boolean
getBoolean
(String name) 返回boolean
类型字段的值。final byte
返回byte
类型字段的值。final char
返回char
类型字段的值。final RecordedClass
返回Class
类型字段的值。final double
返回double
类型字段的值或可通过扩展转换转换为double
类型的另一个原始类型的值。final Duration
getDuration
(String name) 返回时间跨度字段的值。返回此对象的字段的不可变列表。final float
返回float
类型字段的值或可通过扩展转换转换为float
类型的另一个原始类型的值。final Instant
getInstant
(String name) 返回时间戳字段的值。final int
返回int
类型字段的值或可通过扩展转换转换为int
类型的另一个原始类型的值。final long
返回long
类型字段的值或可通过扩展转换转换为long
类型的另一个原始类型的值。final short
返回short
类型字段的值或可通过扩展转换转换为short
类型的另一个原始类型的值。final String
返回String
类型字段的值。final RecordedThread
返回Thread
类型字段的值。final <T> T
返回具有给定名称的字段的值。boolean
如果具有给定名称的字段存在,则返回true
,否则返回false
。final String
toString()
返回此对象的文本表示。
-
Method Details
-
hasField
如果具有给定名称的字段存在,则返回true
,否则返回false
。可以使用
"."
来索引嵌套字段(例如"thread.group.parent.name
")。- 参数:
-
name
- 要获取的字段的名称,不能为空 - 返回:
-
如果字段存在,则返回
true
,否则返回false
- 参见:
-
getValue
返回具有给定名称的字段的值。返回类型可以是原始类型或
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
返回此对象的字段的不可变列表。- 返回:
- 字段,不能为空
-
getBoolean
返回boolean
类型字段的值。可以使用
"."
来索引嵌套对象(例如"aaa.bbb"
)。字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段的名称,不能为空 - 返回:
-
字段的值,
true
或false
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是boolean
类型 - 参见:
-
getByte
返回byte
类型字段的值。可以使用
"."
来索引嵌套对象(例如"foo.bar"
)。字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段的名称,不能为空 - 返回:
- 字段的值
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是byte
类型 - 参见:
-
getChar
返回char
类型字段的值。可以使用
"."
来索引嵌套对象(例如"aaa.bbb"
)。字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段的名称,不能为空 - 返回:
-
字段的值作为
char
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是char
类型 - 参见:
-
getShort
返回short
类型字段的值或可通过扩展转换转换为short
类型的另一个原始类型的值。此方法可用于以下类型:
short
和byte
。如果字段具有
@Unsigned
注释,并且比short
更窄,则值将作为无符号值返回。可以使用
"."
来索引嵌套对象(例如"aaa.bbb"
)。字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段的名称,不能为空 - 返回:
-
转换为
short
类型的字段值 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法通过扩展转换转换为short
类型 - 参见:
-
getInt
返回int
类型字段的值或可通过扩展转换转换为int
类型的另一个原始类型的值。此方法可用于以下类型的字段:
int
、short
、char
和byte
。如果字段具有
@Unsigned
注释,并且比int
更窄,则值将作为无符号值返回。可以使用
"."
来索引嵌套对象(例如"aaa.bbb"
)。字段可能会在未来的 JDK 版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
将字段值转换为
int
类型的值 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法通过扩展转换为int
类型 - 参见:
-
getFloat
返回float
类型字段的值,或者可以通过扩展转换为float
类型的另一种原始类型的值。此方法可用于以下类型的字段:
float
、long
、int
、short
、char
和byte
。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
将字段值转换为
float
类型的值 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法通过扩展转换为float
类型 - 参见:
-
getLong
返回long
类型字段的值,或者可以通过扩展转换为long
类型的另一种原始类型的值。此方法可用于以下类型的字段:
long
、int
、short
、char
和byte
。如果字段具有
@Unsigned
注释,并且比long
类型窄,则该值将作为无符号值返回。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
将字段值转换为
long
类型的值 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法通过扩展转换为long
类型 - 参见:
-
getDouble
返回double
类型字段的值,或者可以通过扩展转换为double
类型的另一种原始类型的值。此方法可用于以下类型的字段:
double
、float
、long
、int
、short
、char
和byte
。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
将字段值转换为
double
类型的值 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法通过扩展转换为double
类型 - 参见:
-
getString
返回String
类型字段的值。可以使用
"."
来索引嵌套对象(例如,"foo.bar"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
将字段值作为
String
返回,可以为null
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是String
类型 - 参见:
-
getDuration
返回时间跨度字段的值。此方法可用于带有
@Timespan
注释的字段,以及以下类型的字段:long
、int
、short
、char
和byte
。如果提交的事件值为
Long.MAX_VALUE
,无论@Timespan
设置的单位是什么,此方法都将返回ChronoUnit.FOREVER
。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
作为
Duration
表示的时间跨度,不能为空 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法转换为Duration
对象 - 参见:
-
getInstant
返回时间戳字段的值。此方法可用于带有
@Timestamp
注释的字段,以及以下类型的字段:long
、int
、short
、char
和byte
。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
作为
Instant
表示的时间戳,不能为空 - 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段值无法转换为Instant
对象 - 参见:
-
getClass
返回Class
类型字段的值。可以使用
"."
来索引嵌套对象(例如,"aaa.bbb"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
作为
RecordedClass
表示的字段值,可以为null
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是Class
类型 - 参见:
-
getThread
返回Thread
类型字段的值。可以使用
"."
来索引嵌套对象(例如,"foo.bar"
)。字段可能会在未来的JDK版本中更改或删除。调用此方法的最佳实践是在尝试访问之前验证字段。
- 参数:
-
name
- 要获取的字段名称,不能为空 - 返回:
-
作为
RecordedThread
对象表示的字段值,可以为null
- 抛出:
-
IllegalArgumentException
- 如果字段不存在,或字段不是Thread
类型 - 参见:
-
toString
返回此对象的文本表示。
-