java - 无需实现即可比较

标签 java

我是java新手。我正在学习界面,我正在尝试执行以下操作:

package comparator;
import java.io.*;
import java.util.*;

public class comparator {
    public static bankAccount ba=new bankAccount(80);
    public static void main(String args[]){
    method1(ba);
    }
    public static void method1(bankAccount ba1){
        bankAccount ba2=new bankAccount(80);
        int c=((Comparable) ba1).compareTo(ba2);
        System.out.println(c);
    }
}
class bankAccount{
    public double balance;
    public A(double bal){
        balance=bal;
    }
}

但是我收到如下错误:

Exception in thread "main" java.lang.ClassCastException: comparator.bankAccount cannot be cast to java.lang.Comparable
    at comparator.comparator.method1(comparator.java:25)
    at comparator.comparator.main(comparator.java:20)

我无法理解这种新类型的错误。任何帮助将非常感激。

最佳答案

您根本无法将 bankAccount 类型的对象转换为 Comparable。您需要在 bankAccount 类中实现 Comparable 接口(interface)并重写 compareTo() 方法。

public class bankAccount implements Comparable {
    @Override
    public int compareTo(Object o){
        // TODO Auto-generated method stub
        // Your logic goes here
        return 0;
    }
}

关于java - 无需实现即可比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827882/

相关文章:

java - Java 中 String 相对于 StringBuilder 的优势

java - 复合模式的递归迭代器

带有 JPanel 的 Java 滚动 JScrollPane 到底部

java - 我怎样才能找到两个或多个多边形之间的最小距离?

java - "if"语句对时间复杂度分析有影响吗?

java - 如何有效地浏览 Java 中的扩展和实现?

java - 如何从测试类中删除实例 "driver"

Java模拟多客户端登录

java - 乘法是否可以进行短路评估?

java - 如何停止匿名类中的 Swing 计时器?