0

我在 btrace 中正确设置了回调。我的参数列表包含一个自定义 Enum 对象。如果 Enum 对象等于特定值,我想打印一些东西。我可以直接比较 Enum 对象,或者将该 Enum 对象的字符串表示形式与常量字符串进行比较。

但是,str() 函数不会返回此 Enum 对象的字符串表示形式。它返回路径$class@hash。

如何比较 btrace 中的枚举对象?

谢谢!二本

4

1 回答 1

0

找到了答案。Enum 的字符串表示形式存储在此 Enum 对象的“名称”字段中。因此,使用反射从对象中获取该“名称”字段的值,如下所示:

private static Field enumNameField = field("java.lang.Enum", "name");
String stringRepresentation = (String) get(enumNameField, enumObject);
于 2017-01-17T04:20:54.140 回答