Недавно я обсудил с коллегой о том, как сравнить 2 экземпляра одного и того же класса Java.Сравнение автоматических атрибутов Java
У вас есть два экземпляра сложного объекта и вы хотите узнать, какие атрибуты отличаются между этими двумя.
Вот пример использования: У вас есть профиль пользователя с большим количеством полей, и пользователь отправляет новый профиль, вы хотите знать, какие поля были изменены, чтобы иметь возможность отображать что-то вроде «успешно изменил ваш день рождения», , название улицы ... "
Итак, самое лучшее решение, которое у меня есть, это написать метод сравнения в классе, который принимает другой объект и сравнивает каждое поле по одному, а затем возвращает список полей, которые являются Дифференц.
Мне было интересно, существует ли какой-либо автоматический метод (например, из внешней библиотеки), не указывая вручную каждый атрибут вручную.
Btw, если hibernate имеет метод, который мог бы сделать это, чтобы сравнить локальный и объект базы данных, он мог бы сделать трюк.
Надеюсь, что это помогает, подобно нити - http://stackoverflow.com/questions/369512/best-way-to-compare-objects-by-multiple-fields –
Вы могли бы использовать отражение для этой цели (используя 'getClass(). getDeclaredFields()') или что-то в этом роде. Но я бы предположил, что кто-то уже написал и опубликовал такой код, так что, возможно, кто-то знает об этом. –