繁体   English   中英

ArrayList的问题转换为toArray()方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM