在基元和盒裝型別之間轉換陣列

有時需要將原始型別轉換為盒裝型別。

要轉換陣列,可以使用流(在 Java 8 及更高版本中):

Version >= Java SE 8

int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = 
    Arrays.stream(primitiveArray).boxed().toArray(Integer[]::new);

對於較低版本,可以通過迭代原始陣列並將其顯式複製到盒裝陣列:

Version < Java SE 8

int[] primitiveArray = {1, 2, 3, 4};
Integer[] boxedArray = new Integer[primitiveArray.length];
for (int i = 0; i < primitiveArray.length; ++i) {
    boxedArray[i] = primitiveArray[i]; // Each element is autoboxed here
}

類似地,盒裝陣列可以轉換為其原始對應的陣列:

Version >= Java SE 8

Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = 
    Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray();

Version < Java SE 8

Integer[] boxedArray = {1, 2, 3, 4};
int[] primitiveArray = new int[boxedArray.length];
for (int i = 0; i < boxedArray.length; ++i) {
    primitiveArray[i] = boxedArray[i]; // Each element is outboxed here
}