![](/img/trans.png)
[英]casting ArrayList.toArray() with ArrayList of Generic Arrays
[英]Casting issue with ArrayList toArray() method
在一个类中,我具有如下构造函数:
Class(int x, int y, int[] moves);
在创建那些对象的其他类中,我将移动存储在ArrayList中。 动作是数字。 因此,当此类决定创建新对象时,必须首先将该ArrayList转换为数组。 所以我尝试了这样的事情:
new Object(0, 0, (int[])moves.toArray(int[moves.size()]);
但这是行不通的。 应该如何正确完成?
在ArrayList
上调用toArray()
的结果永远不会是int[]
。 由于泛型的工作方式,因此在Java中无法使用ArrayList<int>
。 最好是Integer[]
,然后需要将其转换。 请注意,即使您可以将Integer
转换为int
, 也无法将Integer[]
转换为int[]
。 某些东西必须遍历这些值。
您可以直接执行以下操作:
int[] values = new int[moves.size()];
for (int i = 0; i < values.length; i++) {
values[i] = moves.get(i);
}
或者可以创建一个Integer[]
然后从中转换-但是为什么要复制两次?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.