使用java自动装箱获取错误

时间:2014-03-26 00:35:00

标签: java autoboxing

任何人都可以告诉为什么自动拳击不起作用,为什么使用构造函数它工作正常:

int intValue = 12;
Double FirstDoubleValue = new Double(intValue);
Double SecondDoubleValue = intValue; // ==> Error

感谢您提前:)

2 个答案:

答案 0 :(得分:4)

The constructor expects a double原始类型,在这种情况下,通过widening primitive conversion,可以使用int

然而,在

Double SecondDoubleValue = intValue; // ==> Error

您正在尝试将int分配给Double。那些是不兼容的类型。

请注意boxing conversion

  

将基本类型的表达式转换为   相应的引用类型表达式

因此int将成为Integer,但Integer仍与Double不兼容。

答案 1 :(得分:0)

尝试

Double SecondDoubleValue = (double)intValue;

Java无法将int强制转换为Double。它可以将int转换为double,这就是你的第二行发生的事情。

在这里查看有关转化的一些深入解答。 http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html