igual () vs compareTo () em Comparator / able (Theoretical)
Eu não entendo Javadoc:
The natural ordering for a class C is said to be consistent with equals if and only if
(e1.compareTo((Object)e2) == 0) has the same boolean value as e1.equals((Object)e2) for
every e1 and e2 of class C.
Por que deveria ser assim?
Eu entendo que e1.equals (e2) = true sempre deve implicar e1.compareTo (e2) == 0, mas não consigo entender porque o oposto deveria ser verdadeiro. Comparação não é igualdade! 2 objetos iguais devem ser comparados a zero, mas 2 diferentes devem ser capazes de comparar com 0 se os critérios de classificação não forem relevantes no caso deles. Quero dizer, ter objetos diferentes se igualando não é correto, mas objetos diferentes com uma comparação 0 porque não?
EDIT: Mais tarde, diz que a consistência é forte recomendada, para alguns problemas de compatibilidade e, portanto, a questão