2017-01-17 5 views
0

У меня правильно настроен обратный вызов в btrace. Мой список аргументов содержит пользовательский объект Enum. Я хочу что-то напечатать, если объект Enum равен определенному значению. Я в порядке, либо напрямую сравнивая объект Enum, либо сравнивая строковое представление этого объекта Enum с постоянной строкой.В btrace, как я могу сравнить и проверить значение объекта Enum?

Однако функция str() не возвращает мне строковое представление этого объекта Enum. Он возвращает путь $ class @ hash.

Как я могу сравнить объект Enum в btrace?

Спасибо! Erben

ответ

0

Найден ответ. Строковое представление Enum хранится в поле «name» этого объекта Enum. Поэтому используйте отражение, чтобы получить значение этого поля «имя» от объекта следующим образом:

private static Field enumNameField = field("java.lang.Enum", "name"); 
String stringRepresentation = (String) get(enumNameField, enumObject); 
Смежные вопросы