所以想象一下我有以下内容:myList
类型ArrayList<CustomType>
,我想将它转换为数组,我该怎么做?
我努力了
CustomType[] myArr = (CustomType)myList.toArray();
这个编译,没问题,但我在运行时得到一个强制转换异常。我目前的解决方案是遍历 ArrayList 并将每个条目写入数组,效果不好。
任何想法?谢谢。
myList.toArray(new CustomType[myList.size]);
不传递任何参数的 toArray() 方法返回 Object[]。所以你必须传递一个数组作为参数,它将用列表中的数据填充并返回。您也可以传递一个空数组,但您也可以传递一个具有所需大小的数组。
CustomType[] 数组 = myList.toArray(new CustomType[list.size()]);
您的 myArr 是一个 CustomType 数组,您不能将 CustomType 对象转换为 CustomType Array 对象。做这个:
CustomType[] myArr = (CustomType[])myList.toArray();