Избавьтесь от:
interface Comparable{
int compareTo(Object otherObject);
}
Поскольку вы путаете компилятор, создав собственный интерфейс, который скрывает ядро Java интерфейса с тем же именем . Вместо этого используйте базовый Java сопоставимый интерфейс.
Проблема здесь в том, что метод Arrays.sort(...)
должен использовать основной интерфейс, а не ваш собственный. В противном случае ваш код может , возможно, работать, хотя, вероятно, запутает других кодеров и, что более важно, ваше будущее Я .
Примечание, я бы порекомендовал использовать версию generi c интерфейса. Мне также нравится всегда добавлять аннотацию @Override
над любым методом, который, я думаю, я может переопределить, чтобы компилятор проверил это для меня и предупредил меня во время компиляции:
public class BankAccount implements Comparable<BankAccount>, Measurable {
@Override
public int compareTo(BankAccount other) {
// ....
}