Сравните 2 объекта в затмении во время выполнения (во время отладки)? - PullRequest
4 голосов
/ 07 января 2011

Могу ли я сравнить 2 объекта с помощью инструмента Eclipse - Expressions, пытаюсь отладить Java-программу. Максимум, что я могу сделать, это добавить оба объекта в выражения и вручную развернуть объект для сравнения, я хотел бы, чтобы это было похоже, выберите 2 объекта (того же типа - класс, конечно) и произнесите «Сравнить», и Eclipse анализирует оба объекта. объекты и выделяет все различия ..

PS: мне не лень делать это вручную, просто объект, с которым я имею дело, очень сложен, например, у него есть 10 уровней или массив объектов:)

Ответы [ 3 ]

3 голосов
/ 09 сентября 2011

Не элегантное решение, но в прошлом оно работало хорошо для меня - включить что-то вроде gson или другого парсера json в ваш путь к классам.Затем в представлении «Просмотр» введите:

new Gson().gson.toJson(yourObject1)  

и

new Gson().gson.toJson(yourObject2)

. Затем используйте выходной файл json, сохраните его в файлы и воспользуйтесь инструментом сравнения файлов.Длинный, но со сложными предметами, часто стоит.

1 голос
/ 09 сентября 2011

Они могут быть настолько подробными или простыми, насколько вы хотите.Использование выражения равенства в представлении «Отображение» может сообщить вам, если два объекта совпадают, но если они различаются, это не скажет вам, в чем заключаются эти различия.Рассмотрите возможность использования детальных форматировщиков Eclipse.Они замечательные.

Представление Eclipse Inspect часто может быть завалено нежелательными данными, которые просто загромождают ваш разум и то, что вас действительно интересует. Выходные данные, которые вы решите отобразить, являются вашим выбором для средств форматирования деталей.

См. Ссылкуниже для идеи о том, как их использовать.

http://www.howardism.org/Technical/Eclipse/Eclipse_Detail_Formatter.html

0 голосов
/ 07 января 2011

Найти представление «Показать» в категории отладки.Он не открывается по умолчанию в перспективе отладки Java.Во время сеанса отладки вы сможете выполнять в значительной степени произвольные операторы Java.

...