может кто -нибудь объяснить мне простыми терминами, почему этот код вызывает исключение, метод сравнения нарушает его общий контракт! , и как его исправить?
private int compareParents(Foo s1, Foo s2) {
if (s1.getParent() == s2) return -1;
if (s2.getParent() == s1) return 1;
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/832 ... l-contract