Я нахожусь в процессе тестирования кода и нашел несколько случаев, когда у разработчика есть DTO, который реализует Comparable.Это DTO имеет 7 или 8 полей.Метод compareTo был реализован только для одного поля:
private DateMidnight field1; //from Joda date/time library
public int compareTo(SomeObject o) {
if (o == null) {
return -1;
}
return field1.compareTo(o.getField1());
}
Аналогично, метод equals переопределяется и в основном сводится к:
return field1.equals(o.getField1());
и, наконец, реализация метода хеш-кода выглядит так:
return field1.hashCode;
field1
никогда не должно быть нулевым и будет уникальным для этих объектов (т.е. мы не должны получать два объекта с одинаковым field1
).
Итак, реализации последовательны, что хорошо, но следует ли мне беспокоиться, что используется только одно поле?Это необычно?Это может вызвать проблемы или сбить с толку других разработчиков?Я имею в виду сценарий, когда список этих объектов передается, а другой разработчик использует карту или набор некоторого вида и получает необычное поведение от этих объектов.Любые мысли приветствуются.Спасибо!