list.toArray() 返回的是 Object[],其中仅包含 int[]。 因此我认为可以直接将它强制转换为 int[][]。 但实际上我错了,这会导致一个转换异常。
list.toArray(new int[list.size()][]);
这样也可以,但我仍感到困惑。
List<int[]> list = new ArrayList<>();
//some code
//cast exception
return (int[][])list.toArray();
//this way is ok
return list.toArray(new int[list.size()][]);
为什么会抛出那个异常?
Object[]
不是int[][]
,在这种情况下甚至更普遍的情况下都不是。请检查两个toArray
实现的源代码。 - luk2302