2017-01-17 45 views
0

我在btrace中正确设置了回调。我的参数列表包含一个自定义的Enum对象。如果Enum对象等于特定值,我想打印一些内容。我可以直接比较Enum对象,也可以将该Enum对象的字符串表示与常量字符串进行比较。在btrace中,如何比较和检查Enum对象的值?

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

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

谢谢! Erben

回答

0

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

private static Field enumNameField = field("java.lang.Enum", "name"); 
String stringRepresentation = (String) get(enumNameField, enumObject);