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

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

private int compareParents(Foo s1, Foo s2) {
    if (s1.getParent() == s2) return -1;
    if (s2.getParent() == s1) return 1;
    return 0;
}
179
задан Stuart Marks 22 January 2018 в 18:57
поделиться