无法@Override Java中的compareTo()方法

Dyl*_*ard 2 java netbeans

我正在写一个BankAccount课程,将一堆银行账户放入一个数组列表,并根据他们的账号对它们进行排序.我写的compareTo()方法如下:

public int compareTo(BankAccount another){
    if (Integer.parseInt(this.getAccountNumber()) > Integer.parseInt(another.getAccountNumber()))
        return 1;
    else if(Integer.parseInt(this.getAccountNumber()) < Integer.parseInt(another.getAccountNumber()))
        return -1;
    else
        return 0;
Run Code Online (Sandbox Code Playgroud)

在我的main方法中,accounts是数组列表的变量.当我尝试这样做Collections.sort(accounts);时却无法做到.它给我一个错误,说"不能从参数实例化,因为实际和形式参数长度不同"和"推断类型不符合声明的约束".我认为这是因为我没有覆盖该compareTo()方法,但是当我尝试时@Override it,它说"方法不会覆盖或实现超类型的方法".我不明白问题是什么.任何帮助,将不胜感激.

Rom*_*ain 10

你的BankAccount类应该实现java.lang.Comparable<BankAccount>接口,看起来你的代码不是这种情况.实际上,Collection.sort正在收集Comparable<T>作为论据的集合.


Ósc*_*pez 5

确保您的类声明如下所示:

public class BankAccount implements Comparable<BankAccount>
Run Code Online (Sandbox Code Playgroud)