Я получаю "Метод сравнения нарушает его общий контракт" после компиляции некоторого кода Java в Java 7 и затем его запуска.
Я прочитал Метод сравнения нарушает общий контракт! Java 7 только и понять, что с моим кодом, который был проигнорирован в предыдущих версиях Java, что-то не так. Однако я не могу понять, что не так с моим кодом. Команда Collections.sort() генерирует ошибку.
Мой код:
public Comparator sortBySmoothDays() {
Comparator c = new Comparator() {
public int compare(Object arg0, Object arg1) {
Date date0 = ((PosObject)arg0).getDate();
Date date1 = ((PosObject)arg1).getDate();
double d1 = MyUtils.calcSmoothDays(date0, new Date());
double d2 = MyUtils.calcSmoothDays(date1, new Date());
if (d1 >= d2) {
return 1;
}
else {
return -1;
}
}
};
return c;
}
Comparator c = ComparatorUtils.getInstance().sortBySmoothDays();
Collections.sort(posList, c);
Может ли кто-нибудь помочь? Спасибо!