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