【发布时间】:2019-09-28 03:49:07
【问题描述】:
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实现的来源。 -
你也不能用字符串列表来做。
标签: java arrays object casting