ArrayList<> .values.toArray,强制转换为自定义类型数组

时间:2012-10-08 17:07:09

标签: java casting

想象一下,我有以下类型myList类型为ArrayList<CustomType>,我想将其转换为数组,我该怎么做呢?

我试过了

CustomType[] myArr = (CustomType)myList.toArray();

这个编译没问题,但我在运行时得到了一个转换异常。我目前的解决方案是遍历ArrayList并将每个条目写入数组,这不是很好。

有什么想法吗?感谢。

4 个答案:

答案 0 :(得分:3)

你有一个带有类型

的toArray版本

toArray(T[] a)

所以你会这样做:

myList.toArray(new CompositeType[myList.size()]);

答案 1 :(得分:1)

myList.toArray(new CustomType [myList.size]);

答案 2 :(得分:0)

不传递任何参数的toArray()方法返回Object []。因此,您必须将数组作为参数传递,该数组将填充列表中的数据并返回。您也可以传递一个空数组,但也可以传递一个具有所需大小的数组。

CustomType [] array = myList.toArray(new CustomType [list.size()]);

答案 3 :(得分:0)

您的myArr是一个CustomType数组,您无法将CustomType对象强制转换为CustomType数组对象。这样做:

CustomType[] myArr = (CustomType[])myList.toArray();