Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 btrace 中正确设置了回调。我的参数列表包含一个自定义 Enum 对象。如果 Enum 对象等于特定值,我想打印一些东西。我可以直接比较 Enum 对象,或者将该 Enum 对象的字符串表示形式与常量字符串进行比较。
但是,str() 函数不会返回此 Enum 对象的字符串表示形式。它返回路径$class@hash。
如何比较 btrace 中的枚举对象?
谢谢!二本
找到了答案。Enum 的字符串表示形式存储在此 Enum 对象的“名称”字段中。因此,使用反射从对象中获取该“名称”字段的值,如下所示:
private static Field enumNameField = field("java.lang.Enum", "name"); String stringRepresentation = (String) get(enumNameField, enumObject);