当一个 java.lang.Double 对象在没有调用构造函数而是使用原语的情况下被初始化时会发生什么?它似乎有效,但我不太确定为什么。编译器是否正在进行某种隐式转换?这是使用 Java 5。
public class Foo {
public static void main(String[] args) {
Double d = 5.1;
System.out.println(d.toString());
}
}
最佳答案
这叫做 Autoboxing这是 Java 5 中添加的一个特性。它会自动在基本类型和包装类型之间进行转换,例如 double
(基本类型)和 java.lang.Double
(对象包装器)。 java 编译器自动转换行:
Double d = 5.1;
进入:
Double d = Double.valueOf(5.1);
关于java - 使用原始 double 值初始化 Double 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290681/