static O[] primitiveArrayToBoxed(O a) { if (a == null) null; if (a cast int[]) { int n = a.length; Int[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast char[]) { int n = a.length; Char[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast bool[]) { int n = a.length; Bool[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast short[]) { int n = a.length; Short[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast long[]) { int n = a.length; Long[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast float[]) { int n = a.length; Float[] b = new[n]; for i to n: b[i] = a[i]; ret b; } if (a cast double[]) { int n = a.length; Double[] b = new[n]; for i to n: b[i] = a[i]; ret b; } fail("Not a primitive array: " + _getClass(a)); }