Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение двух объектов / 13 сообщений из 13, страница 1 из 1
05.03.2012, 17:17:11
    #37691960
Synchrophasotron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
Всем доброго времи суток.
Есть такая задача: Два обекта одного класса, надо сравнить их и получиться лист пар с различными значениями. Как можно это сделать более изящно и быстро? Может уже есть какие нибудь встроенные механизмы? Можно прикрутить рефлекшен, но вот только стоит ли ради одного класса?

Всем за ранее спасибо
...
Рейтинг: 0 / 0
05.03.2012, 17:24:16
    #37691981
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
http://blog.local.ch/en/2007/04/18/java-finding-differences-in-objects/ -- вот это можно использовать на свой страх и риск, или допилить до того что вам нужно.
А вот тут обсуждение на stackoverflow - http://stackoverflow.com/questions/2546222/differences-between-2-objects-with-java-reflection-how
...
Рейтинг: 0 / 0
05.03.2012, 17:42:36
    #37692039
Synchrophasotron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
...
Рейтинг: 0 / 0
05.03.2012, 17:43:25
    #37692042
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
Synchrophasotronи еще одна сылочка
http://stackoverflow.com/questions/3491679/how-to-calculate-difference-between-two-dates-using-java
При чем здесь две даты???
...
Рейтинг: 0 / 0
05.03.2012, 17:44:04
    #37692044
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
SynchrophasotronЕсть такая задача: Два обекта одного класса, надо сравнить их и получиться лист пар с различными значениями. Как можно это сделать более изящно и быстро? Может уже есть какие нибудь встроенные механизмы? Можно прикрутить рефлекшен, но вот только стоит ли ради одного класса?
Если класс только один с примитивными полями то не грех и руками написать.
...
Рейтинг: 0 / 0
05.03.2012, 17:51:51
    #37692086
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
BlazkowiczЕсли класс только один с примитивными полями то не грех и руками написать.
+1
особенно с примитивными типами.
А если со сложными, то задача вообще нерешаема.
...
Рейтинг: 0 / 0
05.03.2012, 17:53:29
    #37692092
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
Petro123А если со сложными, то задача вообще нерешаема.
Почему? У меня есть самописное подобие. Не совсем diff, но похоже. Нормально решает - разворачивает все объекты до примитивов.
...
Рейтинг: 0 / 0
05.03.2012, 17:56:54
    #37692101
Synchrophasotron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
...
Рейтинг: 0 / 0
05.03.2012, 17:57:52
    #37692106
Synchrophasotron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
Petro123BlazkowiczЕсли класс только один с примитивными полями то не грех и руками написать.
+1
особенно с примитивными типами.
А если со сложными, то задача вообще нерешаема.

Да тоже решил что ручками быстрее и проще будет
...
Рейтинг: 0 / 0
05.03.2012, 18:00:08
    #37692111
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
BlazkowiczPetro123А если со сложными, то задача вообще нерешаема.
Почему? У меня есть самописное подобие. Не совсем diff, но похоже. Нормально решает - разворачивает все объекты до примитивов.
не знаю, как вы в Java пишите.
У меня в D в объектах по 3-4 класса-композита и наследники. В каждом из них ещё "матрёшки".
Т.е. куча состояний, связей.
====
Аналог - сравнить\скачать 2 страницы сайта имеющей ссылки. Обычно качалка ставит ограничение - далее 2-го колена ссылки - не качать.
imho
Тут надо цель сравнения иметь.
...
Рейтинг: 0 / 0
05.03.2012, 18:07:29
    #37692136
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
авторне знаю, как вы в Java пишите.
У меня в D в объектах по 3-4 класса-композита и наследники. В каждом из них ещё "матрёшки".
Т.е. куча состояний, связей.
====
Аналог - сравнить\скачать 2 страницы сайта имеющей ссылки. Обычно качалка ставит ограничение - далее 2-го колена ссылки - не качать.
imho
Тут надо цель сравнения иметь.

А при чем тут наследники? На самом деле тут рекурсивный алгоритм, разворачиваем все суперклассы и поля до примтивных типов и сравниваем, ничего сверхъестественного.
Кстати по-моему интересная задача для обсуждения на собеседовании, наводящими вопросами можно обсудить чуть ли не все java core
...
Рейтинг: 0 / 0
05.03.2012, 18:10:07
    #37692143
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
забыл никА при чем тут наследники? На самом деле тут рекурсивный алгоритм, разворачиваем все суперклассы и поля до примтивных типов и сравниваем, ничего сверхъестественного.
Кстати по-моему интересная задача для обсуждения на собеседовании, наводящими вопросами можно обсудить чуть ли не все java core
Ну, хз. Я вот сам постоянно забываю что нельзя нормально получить поля включая предков. Уже третий раз сталкиваюсь и всё равно не помню. Зато в Spring нашелся полезный шаблон для этого.
...
Рейтинг: 0 / 0
05.03.2012, 18:35:28
    #37692192
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух объектов
авторНу, хз. Я вот сам постоянно забываю что нельзя нормально получить поля включая предков. Уже третий раз сталкиваюсь и всё равно не помню. Зато в Spring нашелся полезный шаблон для этого.

Ну так в этом и вся соль имхо, естественно многие забудут, на то и наводящие вопросы, а что если у класса есть суперкласс? - а что если есть коллекция? А как лучше всего сравнивать строки? а что если это generic класс? и т.д - просто лично мне гораздо проще говорить имея конкретную, понятную задачу, чем какие-то абстрактные, никому не нужные головоломки или corner-case. К тому же интересно увидеть как человек думает, знает ли про Reflection, про рекурсию и т.д.

А то как-то было у меня on-call собеседование с шарингом экрана, где надо было написать библиотеку для работы с дробными числами с использованием TDD, ну и что тут можно гвоорить когда я с дробями имел дело последний раз лет 10 назад, а тут вполне себе реальная практическая задача.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение двух объектов / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]