Я получаю ошибку времени выполнения Exception in thread "main" java.lang.ClassCastException: m.compiler.datatypes.Int cannot be cast to 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()
я получаю исключение. Компилятор не имеет ошибок и предупреждений.