将包装器的Array ArrayList转换为相应的基元数组

我使用包含类ShortArrayList
添加一些值后,我想得到原始数组,但似乎没有办法使用函数toArray(Object[] array) ,因为它需要一个带有包装类的数组

有没有使用for或类似的东西的另一种方式?

Apache Commons / Lang有一个定义这些方法的类ArrayUtils 。

  • 所有调用toObject()方法都从原始数组转换为包装器数组。
  • 所有调用toPrimitive()从包装器对象数组转换为原始数组

我想,你需要ArrayUtils's toPrimitive()

 public static short[] toPrimitive(Short[] array) 

将对象Shorts数组转换为基元。

尝试使用org.apache.commons.lang.ArrayUtilstoPrimitive(...)方法。

您可以自己填充数组:

 ArrayList shorts = ...; short shortArray[] = new short[shorts.size()]; for (int i = 0; i < shorts.size(); i++) shortArray[i] = shorts.get(i); 

请注意,我在分配行中使用了自动装箱。