1

我需要通过从 ArrayList 进行强制转换来创建一个返回 int 数组的方法。这是我的代码:

public int[] getDestSets()
{
    int[] array = new int[destSet.size()];
    destSet.toArray(array);
    return array;
}

destSet 是一个整数 ArrayList。我收到错误“ArrayList 类型中的方法 toArray(T[]) 不适用于参数 (int[])”。谁能给我一个提示?谢谢!

4

3 回答 3

1

您可以尝试使用 Apache Commons Lang 库中的 ArrayUtils 类。这将需要两个步骤。首先将 ArrayList 转换为包装对象数组 (Integer[])。之后,您可以使用 ArrayUtils.toPrimitive() 将其转换为 int (int[]) 数组。

于 2013-07-22T01:03:01.247 回答
1

虽然包装类 Integer 将自动拆箱为 int 原语,但数组/列表不会自动拆箱为 int 数组。

你必须以艰难的方式做到这一点:

public int[] getDestSets() {
    int[] array = new int[destSet.size()];
    int x = 0;
    for (Integer i : destSet)
       array[x++] = i;
    return array;
}
于 2013-07-21T23:28:34.920 回答
1

不能将 int[] 数组“装箱”到 Integer[] 数组。您必须使用 for 循环。请参阅为什么 Java 泛型不支持原始类型?了解更多信息。

于 2013-07-21T23:15:20.490 回答