java.lang.Integer cannot be cast to java.lang.Long发生的原因

284 阅读1分钟

正常integer 和 long 之间相互转换是不会出现问题,那么错误是怎么发生的呢?

int m = 5;
Object n = m;
Long l = (long) n;
System.out.println(l);

看上面的代码,数据n是5 Object类型(真实类型为Integer类型, int自动装箱为Integer类型), 如果要将object类型强转为long类型就会报错,因为这里的强转只能是Integer类型或者其父类型