Как в btrace можно сравнить и проверить значение объекта Enum?

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

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

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

Спасибо!
Erben

1 ответ

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

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