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

标签 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;

在我的主要方法中,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/

相关文章:

java - 从存储在数组列表中的对象调用方法

java - 是创建一个类的一个实例更好,还是为每次出现创建一个单独的实例更好?

java - 如何使用 JAVA 将 ArrayList<Arra> 的项目写入文件中?

java - 不能不使用ListCellRenderer

java - 如何判断一个字符串是否是子字符串。 java

php - 如果已经到达断点,netbeans 调试器 (xdebug) 如何跳回到断点?

java - 为什么 HashMap 中的空键总是进入第一个存储桶?

带有背景图像的 Java 卡布局

netbeans - Glassfish 登录服务器错误问题,

java - 无法使用netbeans 7.4连接mysql