一个基础问题,想不通,请教一下大家
代码A: Integer obj = 123456;
long userId = (long)obj;
System.out.println(userId);
运行结果:正常打印出123456;
代码B: Object obj = 123456;
long userId = (long)obj;
System.out.println(userId);
运行结果:抛出异常
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
这是为什么呢?
------解决方案--------------------
Object obj = 123456;
long userId = (long)obj;
System.out.println(userId);
楼主这段代码编译不通过
Object obj = 123456;
Long userId = (Long)obj;
System.out.println(userId);
这种写法编译通过
如果是下面这种方式也是编译不通过的
Integer obj = 123456;
Long userId = (Long)obj;
System.out.println(userId);
Integer对象是不能转成Long对象的,但是值是可以的。即Integer类型的值可以转成long类型的值。