小编Izz*_*'is的帖子

如何比较两个对象而不知道它们的类型

我正在实现一个排序列表类,在这个类中我要对任何类型的对象进行排序,所以现在我想测试该对象是否具有可比性,

我使用此代码覆盖compareTo()方法: -

class MyObject implements Comparable {

Object ob;

    MyObject(){
        this.ob=new Object();
    }

    public int compareTo(Object current){
        if((ob.toString().compareTo(current.toString()))>1)
        return 1;
        else if((ob.toString().compareTo(current.toString()))<1)
        return -1;
        else
        return 0;

    }

    public String toString(){

        return (String)ob;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以现在我需要像这样为这些对象分配数字

class SortedListTest{
    public static void main (String arg[]){

        MyObject b1= new MyObject();
        MyObject b2= new MyObject();

        b1.ob=6;
        b2.ob=3;

        System.out.println(b2.compareTo(b1));
    }

}
Run Code Online (Sandbox Code Playgroud)

但它一直给我这个例外: -

线程"main"java.lang.ClassCastException中的异常:java.lang.Integer无法强制转换为java.lang.String

java object compareto

-1
推荐指数
1
解决办法
445
查看次数

标签 统计

compareto ×1

java ×1

object ×1