|
|
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
Всем доброго времи суток. Есть такая задача: Два обекта одного класса, надо сравнить их и получиться лист пар с различными значениями. Как можно это сделать более изящно и быстро? Может уже есть какие нибудь встроенные механизмы? Можно прикрутить рефлекшен, но вот только стоит ли ради одного класса? Всем за ранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:17:11 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:24:16 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
и еще одна сылочка http://stackoverflow.com/questions/3491679/how-to-calculate-difference-between-two-dates-using-java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:42:36 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
Synchrophasotronи еще одна сылочка http://stackoverflow.com/questions/3491679/how-to-calculate-difference-between-two-dates-using-java При чем здесь две даты??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:43:25 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
SynchrophasotronЕсть такая задача: Два обекта одного класса, надо сравнить их и получиться лист пар с различными значениями. Как можно это сделать более изящно и быстро? Может уже есть какие нибудь встроенные механизмы? Можно прикрутить рефлекшен, но вот только стоит ли ради одного класса? Если класс только один с примитивными полями то не грех и руками написать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:44:04 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли класс только один с примитивными полями то не грех и руками написать. +1 особенно с примитивными типами. А если со сложными, то задача вообще нерешаема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:51:51 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
Petro123А если со сложными, то задача вообще нерешаема. Почему? У меня есть самописное подобие. Не совсем diff, но похоже. Нормально решает - разворачивает все объекты до примитивов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:53:29 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
ой прошу прощения ошибся http://stackoverflow.com/questions/867442/what-is-the-best-way-to-compare-several-javabean-properties ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:56:54 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
Petro123BlazkowiczЕсли класс только один с примитивными полями то не грех и руками написать. +1 особенно с примитивными типами. А если со сложными, то задача вообще нерешаема. Да тоже решил что ручками быстрее и проще будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:57:52 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123А если со сложными, то задача вообще нерешаема. Почему? У меня есть самописное подобие. Не совсем diff, но похоже. Нормально решает - разворачивает все объекты до примитивов. не знаю, как вы в Java пишите. У меня в D в объектах по 3-4 класса-композита и наследники. В каждом из них ещё "матрёшки". Т.е. куча состояний, связей. ==== Аналог - сравнить\скачать 2 страницы сайта имеющей ссылки. Обычно качалка ставит ограничение - далее 2-го колена ссылки - не качать. imho Тут надо цель сравнения иметь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 18:00:08 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
авторне знаю, как вы в Java пишите. У меня в D в объектах по 3-4 класса-композита и наследники. В каждом из них ещё "матрёшки". Т.е. куча состояний, связей. ==== Аналог - сравнить\скачать 2 страницы сайта имеющей ссылки. Обычно качалка ставит ограничение - далее 2-го колена ссылки - не качать. imho Тут надо цель сравнения иметь. А при чем тут наследники? На самом деле тут рекурсивный алгоритм, разворачиваем все суперклассы и поля до примтивных типов и сравниваем, ничего сверхъестественного. Кстати по-моему интересная задача для обсуждения на собеседовании, наводящими вопросами можно обсудить чуть ли не все java core ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 18:07:29 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
забыл никА при чем тут наследники? На самом деле тут рекурсивный алгоритм, разворачиваем все суперклассы и поля до примтивных типов и сравниваем, ничего сверхъестественного. Кстати по-моему интересная задача для обсуждения на собеседовании, наводящими вопросами можно обсудить чуть ли не все java core Ну, хз. Я вот сам постоянно забываю что нельзя нормально получить поля включая предков. Уже третий раз сталкиваюсь и всё равно не помню. Зато в Spring нашелся полезный шаблон для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 18:10:07 |
|
||
|
Сравнение двух объектов
|
|||
|---|---|---|---|
|
#18+
авторНу, хз. Я вот сам постоянно забываю что нельзя нормально получить поля включая предков. Уже третий раз сталкиваюсь и всё равно не помню. Зато в Spring нашелся полезный шаблон для этого. Ну так в этом и вся соль имхо, естественно многие забудут, на то и наводящие вопросы, а что если у класса есть суперкласс? - а что если есть коллекция? А как лучше всего сравнивать строки? а что если это generic класс? и т.д - просто лично мне гораздо проще говорить имея конкретную, понятную задачу, чем какие-то абстрактные, никому не нужные головоломки или corner-case. К тому же интересно увидеть как человек думает, знает ли про Reflection, про рекурсию и т.д. А то как-то было у меня on-call собеседование с шарингом экрана, где надо было написать библиотеку для работы с дробными числами с использованием TDD, ну и что тут можно гвоорить когда я с дробями имел дело последний раз лет 10 назад, а тут вполне себе реальная практическая задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 18:35:28 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=305&tid=2132399]: |
0ms |
get settings: |
16ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 360ms |
| total: | 519ms |

| 0 / 0 |
