В интерфейсе CharSequence в Java 11 добавлен метод сравнения.Почему бы не сравнить сравниваемый интерфейс? - PullRequest
3 голосов
/ 25 мая 2019

Интерфейс CharSequence получил новый статический метод в Java 11: compare.

Этот метод возвращает int:

значение 0, если два CharSequence равны;отрицательное целое число, если первая CharSequence лексикографически меньше, чем вторая;или положительное целое число, если первая CharSequence лексикографически больше, чем вторая.

Звучит так же, как compareTo из Comparable.Тем не менее, команда Java явно выбрала , а не , сделать CharSequence, продлить Comparable.Почему бы и нет?Логика ускользает от меня.

➥ Что такое CharSequence::compare, которое не подходит для Comparable::compareTo?

1 Ответ

5 голосов
/ 25 мая 2019

Добавление Comparable<CharSequence> на самом деле не сработает, поскольку String реализует CharSequence и Comparable<String>.

Для обсуждения см. этот пост одного из разработчиков OpenJDK относительно предмета.

Подсказка из этого поста: в качестве Comparator подойдет ссылка на метод CharSequence::compare.

...