La CharSequence
interfaz ganó un nuevo método estático en Java 11: compare
.
Este método devuelve una int
:
el valor 0 si las dos CharSequence son iguales; un entero negativo si el primer CharSequence es lexicográficamente menor que la segunda; o un entero positivo si la primera CharSequence es lexicográficamente mayor que la segunda.
Eso suena igual compareTo
de Comparable
. Sin embargo, el equipo de Java, obviamente, optó por no hacer que CharSequence
se extiende Comparable
. Por qué no? La lógica me escapa.
➥ ¿Qué es lo CharSequence::compare
que no sería un ajuste apropiado para Comparable::compareTo
?
Añadiendo Comparable<CharSequence>
realmente no funcionaría ya que String
los implementos CharSequence
y Comparable<String>
.
Para la discusión, véase este post por uno de los desarrolladores de OpenJDK en relación con el tema.
Tip de ese mensaje: Una referencia método de la forma CharSequence::compare
sería adecuado como un Comparator
.