// how to convert this
Integer[] array = {1, 2};
// to this
int[] array = {1, 2};
我正在处理具有第二种形式的代码,我需要修改数组的读取方式。我不太了解Java,我宁愿只转换风险错误。
答案 0 :(得分:10)
您可以使用commons-lang ArrayUtils.toPrimitive(array)
如果您出于某种原因不想包含commons-lang,那么这是该方法的代码。但是,只包含依赖项是一个更好的选择 - 它有许多你最终需要的额外功能。
public static final int[] EMPTY_INT_ARRAY = new int[0];
public static int[] toPrimitive(Integer[] array) {
if (array == null) {
return null;
}
if (array.length == 0) {
return EMPTY_INT_ARRAY;
}
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = array[i].intValue();
}
return result;
}
答案 1 :(得分:2)
我不确定你期望的是什么错误,两者之间的差异很小。转换的一种方法是:
Integer[] array = {1, 2};
int[] array2 = new int[array.length];
for (int i = 0; i < array.length; i++ ) {
array2[i] = array[i];
}
答案 2 :(得分:2)
Ints.toArray(Collection<Integer> col)
的google-guava。如果你不想使用外部依赖,那么我认为你必须推出自己的