无法将类 java.lang.Integer 转换为类 java.lang.String

Mad*_*thi 3 java abstract-class exception


    public int compareTo(ListItem item) {
        if(item!=null) {
            return ((String) super.getValue()).compareTo((String) item.getValue());
        }

Run Code Online (Sandbox Code Playgroud)

我的程序基于抽象类概念。

如何java.lang.ClassCastException:在我的程序中解决这个 问题?

Jor*_*dan 5

Java 中的转换不会神奇地将数据从一种类型转换为另一种类型。相反,它告诉 Java 存储在变量中的对象实际上其他类型,这在处理继承或接口时很有用。有关更多详细信息,请参阅此 StackOverflow 问题

在这种情况下,您从中获得的值item.getValue()是一个整数。尝试转换为 String 不会,也不能,因为它不是 String。它确实是一个整数,并且试图对其调用 String 方法是行不通的。

正如其他人所提到的,您可以使用 将整数转换为字符串Integer.toString(someInteger)。但是,由于您正在进行比较,因此您可能应该将值作为整数进行比较。