«Метод сравнения нарушает его общий договор!»

Может кто-нибудь объяснить мне простыми словами, почему этот код выдает исключение «Метод сравнения нарушает свой общий контракт!», И как мне это исправить?

private int compareParents(Foo s1, Foo s2) {
    if (s1.getParent() == s2) return -1;
    if (s2.getParent() == s1) return 1;
    return 0;
}

Ответы на вопрос(10)

Ваш ответ на вопрос