是否有内置的Java方法来装箱arrays?

是否有一种标准方法可以代替这种自定义方法?

public static Byte[] box(byte[] byteArray) { Byte[] box = new Byte[byteArray.length]; for (int i = 0; i < box.length; i++) { box[i] = byteArray[i]; } return box; } 

不,JDK中没有这样的方法。

然而,通常情况下, Apache Commons Lang提供了这样一种方法 。

输入Java 8,您可以执行以下操作(装箱):

 int [] ints = ... Integer[] boxedInts = IntStream.of(ints).boxed().toArray(Integer[]::new); 

但是,这仅适用于int[]long[]double[] 。 这不适用于byte[]

您也可以轻松完成反向(拆箱)

 Integer [] boxedInts = ... int [] ints = Stream.of(boxedInts).mapToInt(Integer::intValue).toArray(); 

除了YoYo的答案,你可以为任何原始类型做到这一点; 让primArray成为PrimType[]类型的标识符,然后您可以执行以下操作:

 BoxedType[] boxedArray = IntStream.range(0, primArray.length).mapToObj(i -> primArray[i]).toArray(BoxedType[] :: new);