我正在编写一个 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;
在我的主要方法中,accounts
是数组列表的变量。当我尝试执行 Collections.sort(accounts);
时,它无法执行此操作。它给了我一个错误,说“无法从参数实例化,因为实际参数和形式参数长度不同”和“推断类型不符合声明的边界”。我认为这是因为我没有覆盖 compareTo()
方法,但是当我尝试 @Override it
时,它说“方法不会覆盖或实现来自父类(super class)型”。我不明白问题是什么。任何帮助将不胜感激。
最佳答案
您的BankAccount
类应该实现 java.lang.Comparable<BankAccount>
接口(interface),看来您的代码中并非如此。事实上, Collection.sort
正在收集Comparable<T>
作为一个论点。
关于java - 无法@Override Java中的compareTo()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298753/