2

所以想象一下我有以下内容:myList类型ArrayList<CustomType>,我想将它转换为数组,我该怎么做?

我努力了

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

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

任何想法?谢谢。

4

4 回答 4

4

你有一个接受类型的 toArray 版本

toArray(T[] a)

所以你会这样做:

myList.toArray(new CompositeType[myList.size()]);
于 2012-10-08T17:10:15.770 回答
1

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

于 2012-10-08T17:11:31.537 回答
0

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

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

于 2012-10-08T17:09:46.520 回答
0

您的 myArr 是一个 CustomType 数组,您不能将 CustomType 对象转换为 CustomType Array 对象。做这个:

CustomType[] myArr = (CustomType[])myList.toArray();
于 2012-10-08T17:26:53.823 回答