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

2022-09-01 11:35:13

是否有标准方法可用于代替此自定义方法?

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;
}

答案 1

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

然而,由于这种情况经常发生,Apache Commons Lang提供了这样的方法


答案 2

输入 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();

推荐