小编典典

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

java

我正在编写一个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,它说“方法不会重写或实现超类型的方法”。我不明白问题是什么。任何帮助,将不胜感激。


阅读 274

收藏
2020-11-26

共1个答案

小编典典

您的BankAccount类应该实现该java.lang.Comparable<BankAccount>接口,看来您的代码中不是这种情况。确实,Collection.sort正在以的集合Comparable<T>作为论据。

2020-11-26