我正在写一个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>作为论据的集合.
确保您的类声明如下所示:
public class BankAccount implements Comparable<BankAccount>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |