Для класса StockQuote
, реализующего Comparable< StockQuote >
со свойством when
типа LocalDateTime
…
public class StockQuote implements Comparable< StockQuote >
{
private LocalDateTime when;
…
}
… это следующеереализация Comparable::compareTo
достаточно?
@Override
public int compareTo ( StockQuote that )
{
return this == that ? 0 : this.getWhen().compareTo( that.getWhen() );
}
Первые проверки на идентичность объекта с this == that
, объявив равенство:
- , если обе ссылки указывают наодин и тот же объект или
- , если оба имеют значение null.
Если не идентичен, этот код преобразует that
в ожидаемый тип и извлекает объект when
из обоих типов.Затем мы возвращаем результат вызова встроенного метода LocalDateTime::compareTo
.Если this
или that
равны нулю, но не оба, выбрасывается NullPointerException
.
Я задавался вопросом об использовании Objects.compareTo
или Comparator.comparing
.