"¡El método de comparación viola su contrato general!"
¿Puede alguien explicarme en términos simples, por qué este código arroja una excepción, "El método de comparación viola su contrato general!", Y ¿cómo lo soluciono?
private int compareParents(Foo s1, Foo s2) {
if (s1.getParent() == s2) return -1;
if (s2.getParent() == s1) return 1;
return 0;
}