为什么Java autobox int [] to Integer []?

时间:2014-09-15 22:11:25

标签: java autoboxing

我有这个方法:

void stuff(Object[] array){
    // .. do stuff with the array
}

尝试这样做:

stuff(intArray);

它无法编译。我必须手动将int[]转换为Integer[]

不是autoboxing应该为我照顾这些东西吗?为什么不呢?

此外,由于结果是Java语言不能原生地执行此操作,为什么JDK中没有实用程序来执行此操作?这不是我们有标准库的原因吗?

1 个答案:

答案 0 :(得分:3)

自动装箱对数组不起作用,自动装箱使用包装类的static valueOf()方法将原语转换为其包装器对象

  

Autoboxing是Java编译器在基元类型和相应的对象包装类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,依此类推。如果转换采用另一种方式,则称为拆箱。