我在btrace中正确设置了回调。我的参数列表包含一个自定义的Enum对象。如果Enum对象等于特定值,我想打印一些东西。我可以直接比较Enum对象,或者将该Enum对象的字符串表示与常量字符串进行比较。
但是,str()函数不会返回此Enum对象的字符串表示形式。它返回路径$ class @hash。
如何在btrace中比较Enum对象?
谢谢! 厄尔本
答案 0 :(得分:0)
找到答案。枚举的字符串表示存储在" name"此枚举对象的字段。因此,使用反射来获得该值的名称" name"像这样的对象字段:
private static Field enumNameField = field("java.lang.Enum", "name");
String stringRepresentation = (String) get(enumNameField, enumObject);