为什么我将 ArrayList 转换为 Integer[] 是错误的?

Why I convert ArrayList to Interger[] is wrong?

private ArrayList<Integer> list;
...
...
...
for (int i=0; i < list.size(); i++) {
                Log.e("downloadTask","resource ID is " + list.get(i));
            }
Integer[]  resourceId = resourceId= (Integer[])list.toArray();

在 for() 语句之前,列表已经被初始化。它具有三个要素; 日志消息是正确的,但是当 运行

Integer[]  resourceId = (Integer[]) list.toArray();

它会抛出异常。我不知道如何解决这个问题。

list.toArray() returns 对象数组 (Object[]),不能转换为整数数组(因为 Object[] 可以包含任何内容,例如 String, Boolean, SpiderMan, 不只是 Integer).

尝试:

list.toArray(new Integer[list.size()]); //will fill and return passed array 
                                        //with all elements from list

以后请提供抛出的确切异常(并包括堆栈跟踪),以便人们更容易发现问题。