首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于自动装箱和自动转换的有关问题

2012-03-08 
关于自动装箱和自动转换的问题Integer i3//这个没有问题,自动装箱long l 4//这个自动转换,int--long

关于自动装箱和自动转换的问题
Integer i=3;//这个没有问题,自动装箱

long l = 4;//这个自动转换,int-->long,也没啥问题

int i2=4;
Long l2=i2;//这个不能实现。****

求解一下,有点乱

i2不是int吗?不会自动转成long,然后再自动装成Long吗???还是我想法太天真了。
int-->long-->Long。这个实现不了吗?

比如我有一个方法
public void go(long l),这个方法调用的时候go(3)..正常编译执行
还有一个
public void go(Long l),这个方法调用go(3)。编译不通过

求解释下。3Q

[解决办法]
不可能像你说的那样。

long l = 4;

这个过程是自动转型,也就是说基本类型到基本类型。


Integer i=3;

这个是自动装箱,自动装箱的机制是这样的。发现基本类型赋值给引用类型。

启动自动装箱功能,把3自动装箱成Integer.然后赋值





Long l2=i2;

这个,他会启动自动装箱机制。给自己装箱成Integer.但是Long并非Integer父类。所以出错。



热点排行