为什么';是否将Java autobox int[]转换为整数[]?
我有这个方法:为什么';是否将Java autobox int[]转换为整数[]?,java,autoboxing,Java,Autoboxing,我有这个方法: void stuff(Object[] array){ // .. do stuff with the array } 并试图做到这一点: stuff(intArray); 它不能编译。我必须手动将我的int[]转换为整数[] 自动装箱不是应该帮我处理这些东西吗?为什么不呢 另外,既然Java语言不是本机实现的,为什么JDK中没有一个实用程序来实现这一点呢?这不是我们有一个标准库的原因吗?自动装箱不适用于数组,自动装箱使用包装类的静态valueOf()方法将原语转换为
void stuff(Object[] array){
// .. do stuff with the array
}
并试图做到这一点:
stuff(intArray);
它不能编译。我必须手动将我的int[]
转换为整数[]
自动装箱不是应该帮我处理这些东西吗?为什么不呢
另外,既然Java语言不是本机实现的,为什么JDK中没有一个实用程序来实现这一点呢?这不是我们有一个标准库的原因吗?自动装箱不适用于数组,自动装箱使用包装类的
静态valueOf()
方法将原语转换为其包装对象
自动装箱是Java编译器在原语类型与其对应的对象包装器类之间进行的自动转换。例如,将int转换为整数,将double转换为double,等等。如果转换方向相反,则称为取消装箱
为什么不呢?该死,Java有一些恼人的细节。@AvivCohn Java会自动装箱,将原始类型转换为它们的包装类。数组不是基元类型。因为它被设计为支持具有基元文字值的包装器类,并且int[]
不是基元文字,所以不要使用数组,反正它不好,请使用列表。在我看来,这并不能回答问题。它只是确认自动装箱在这种情况下不起作用。