我有这个方法:
void stuff(Object[] array){
// .. do stuff with the array
}
尝试这样做:
stuff(intArray);
它无法编译。我必须手动将int[]
转换为Integer[]
。
不是autoboxing应该为我照顾这些东西吗?为什么不呢?
此外,由于结果是Java语言不能原生地执行此操作,为什么JDK中没有实用程序来执行此操作?这不是我们有标准库的原因吗?
答案 0 :(得分:3)
自动装箱对数组不起作用,自动装箱使用包装类的static
valueOf()
方法将原语转换为其包装器对象
Autoboxing是Java编译器在基元类型和相应的对象包装类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,依此类推。如果转换采用另一种方式,则称为拆箱。