Сравнение двух объектов Java на лету (тип данных неизвестен) - PullRequest
2 голосов
/ 31 декабря 2010

Мне нужно сравнить разные объекты данных.

Может кто-нибудь сказать мне, как я могу это сделать.Я не знаю, какие типы данных я получу ранее.Если мне нужно использовать утилиту из Apache Commons, пожалуйста, дайте ссылку на нее.

В настоящее время я использую .equals () для сравнения равенства объектов. Это работает нормально, когда я сравниваю качество для двух строк,Если я сравниваю тип данных java.sql.date, то он выглядит неравномерно, хотя оба содержат одинаковые значения.

Может ли кто-нибудь подсказать мне на этот счет.

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

это полностью зависит от реализации метода equals() объекта, для которого вы вызываете equals(),

0 голосов
/ 31 декабря 2010

Как вы, возможно, знаете, смысл метода equals() заключается в сравнении значений объектов, а не в сравнительных сравнениях с использованием операторов == или !=.

В вашем примере объектов java.sql.Date даты, вероятно, не равны, поскольку определенные части времени, которые они представляют, отличаются - например, значения в миллисекундах - из-за уровня точности.

По сути, это полностью зависит от реализации equals() для каждого объекта; Я также хотел бы подчеркнуть, что вы, возможно, захотите уточнить что именно точно вы определяете как «равный» значению - например, тот же тип во время выполнения или содержащий те же имена открытых полей, которые описаны при некотором отражении объектов - тогда работай оттуда.

...