В Java 7 представлен класс Objects
, содержащий методы null
-safe или null
-tolerant, включая compare(T, T, Comparator<T>)
. Но когда я когда-нибудь буду использовать
Objects.compare(left, right, comparator);
по простому вызову
comparator.compare(left, right);
?
Objects.compare
является только null
-safe, если comparator
также, так зачем мне обертывать вызов сравнения? Оптимизация первой проверки для идентичности объекта кажется чем-то, что должно быть сделано в самом компараторе. И единственное реальное различие в поведении, которое я вижу, заключается в том, что comparator.compare(left, right)
выбрасывает a NullPointerException
, если все comparator
, left
и right
являются null
, а Objects.compare
- нет; это на самом деле не выглядит достаточно важным, чтобы гарантировать новый метод стандартной библиотеки.
Я пропустил что-то очевидное здесь?