Сохранение состояния объекта в отладчике IntelliJ?
Заголовок: Как сохранить состояние объекта при отладке?
Тело вопроса: Здравствуйте!
У меня возникла проблема: возможно ли сохранить состояние объекта во время отладки? Я хотел бы сравнить состояние одного и того же объекта в двух разных циклах выполнения.
Дополнительный вопрос: Есть ли у кого-то опыт разработки плагинов для IntelliJ? Позволяет ли SDK IntelliJ получать значения отладки в режиме отладки? Можно ли прочитать их из кеша IntelliJ и записать на диск?
Спасибо за помощь!
5 ответ(ов)
Лучший обходной путь для сохранения состояния объекта, который я использую, заключается в том, чтобы воспользоваться инструментом Evaluate, когда объект находится в нужном состоянии. Затем я использую библиотеку Gson для преобразования этого объекта в JSON. На этапе настройки теста я копирую полученный JSON в виде строки и снова преобразую его в Java-объект. Возможно, это немного грубо, но для действительно больших и сложных объектов это может сэкономить вам много времени.
Если вас устраивает сохранять каждый объект (вы не можете выбрать, какие объекты сохранять), то для этого есть плагин: Breakpoint Exporter/Importer with Variable Information.
В IntelliJ 2016 у вас есть возможность выбрать "Просмотреть текст" (View Text), кликнув правой кнопкой мыши по переменной в окне "Переменные" (Variables) во время отладки. Это позволяет вам просмотреть содержимое переменной в текстовом формате. Если у вас есть дополнительные вопросы или нужна помощь с отладкой, не стесняйтесь уточнять!
Для отображения данных в формате JSON, вы можете использовать следующий пример кода:
ObjectMapper mapper = new ObjectMapper();
try {
String sample = mapper.writeValueAsString(вашОбъект);
System.out.println(sample);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
Замените вашОбъект
на экземпляр вашего класса, который вы хотите сериализовать в JSON. Использование ObjectMapper
из библиотеки Jackson позволяет легко конвертировать объекты Java в строку в формате JSON. В случае возникновения ошибки будет выведена информация об исключении.
Если в отладчике IntelliJ у вас проблема с отображением объекта (например, вы видите только одну строчку), вы можете попробовать следующий подход:
new Gson().toJson(request);
Этот код использует библиотеку Gson для преобразования вашего объекта request
в JSON-строку. Это может помочь вам получить более полное представление о состоянии объекта, когда отладка не показывает его содержимое в удобном формате. Убедитесь, что у вас подключена библиотека Gson в вашем проекте.
Правильный способ добавления внешних JAR-файлов (lib/*.jar) в проект IntelliJ IDEA
IntelliJ: Никогда не используйте импорт с подстановочным знаком
IntelliJ сообщает "Невозможно разрешить символ", но код все равно компилируется
Как правильно создать JAR-файлы в IntelliJ IDEA?
IntelliJ: Показать подсказки JavaDocs при наведении мыши