gpt4 book ai didi

java - 访问泛型类成员的方法期间出现 ClassCastException

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:56 25 4
gpt4 key购买 nike

我收到运行时错误线程“main”java.lang.ClassCastException中的异常:m.compiler.datatypes.Int无法转换为java.lang.Integer

以下是代码片段:

public abstract class DataType<E> {
protected E value;
...
}

这里是 Int 类:

public class Int extends DataType<Integer> {

@Override
public DataType<Integer> compare(DataType<Integer> other) {
if(value > other.value) //here the exception is thrown
return new Int(1);
if (value < other.value)
return new Int(-1);
return new Int(0);
}

}

实际调用:

        if(lValue instanceof Int) {
Int lInt = (Int) lValue;
Int result = (Int) lInt.compare(rInt);

如果我打印里面的值,比较这些值是正确的,但即使我检查

other.value.getClass()

我得到了异常(exception)。编译器没有错误,也没有警告。

最佳答案

在某些时候,您必须将 Int 分配给 value...并且应该对此有警告。你能将value设为final吗?

关于java - 访问泛型类成员的方法期间出现 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com