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

Tom*_*ito 24 java boxing

我可以用一种标准方法代替这种自定义方法吗?

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;
}
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 25

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

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


YoY*_*oYo 17

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

int [] ints = ...
Integer[] boxedInts = IntStream.of(ints).boxed().toArray(Integer[]::new);
Run Code Online (Sandbox Code Playgroud)

然而,这仅适用于int[],long[]double[].这不适用byte[].

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

Integer [] boxedInts = ...
int [] ints = Stream.of(boxedInts).mapToInt(Integer::intValue).toArray();
Run Code Online (Sandbox Code Playgroud)

  • 你还可以:`List <Integer> boxedList = IntStream.of(ints).boxed().collect(Collectors.toList())` (2认同)