任何人都可以告诉为什么自动拳击不起作用,为什么使用构造函数它工作正常:
int intValue = 12;
Double FirstDoubleValue = new Double(intValue);
Double SecondDoubleValue = intValue; // ==> Error
感谢您提前:)
答案 0 :(得分:4)
The constructor expects a double
,原始类型,在这种情况下,通过widening primitive conversion,可以使用int
。
然而,在
Double SecondDoubleValue = intValue; // ==> Error
您正在尝试将int
分配给Double
。那些是不兼容的类型。
将基本类型的表达式转换为 相应的引用类型表达式
因此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