将原始数据类型数组转换为 OO 数组

Casting primitive data type array to an OO array

是否有一种优雅、干净的方法将原始数据类型 double 数组转换为 OO Double 数组(例如 double[] 转换为 Double[])?

有一些不错的解决方案,例如

int[] intArray = { ... };
Integer[] what = Arrays.stream( intArray ).boxed().toArray( Integer[]::new );
Integer[] ever = IntStream.of( intArray ).boxed().toArray( Integer[]::new );

(取自here),但这需要Java 8Java 7 及以下是否有类似的优雅、高效的方式?

如果你想要一个用 Java 7 编译的单行代码,你可以使用 Apache Commons 的 ArrayUtils。例如

Integer[] what = ArrayUtils.toObject(intArray);

适用于任何基本类型。这可能比您发布的 Java 8 代码多 "elegant" 和 "clean"。如果你想避免像 Apache Commons 这样的库,恐怕你必须使用 for 循环。