1

我有一堂课

public class ABC {
    public int i;
    public float f;

    public ABC(int d1,float d2) {
        i=d1;
        f=d2;
    }
}

我创建了一个 ABC 对象的 ArrayList。

    ArrayList<ABC> list = new ArrayList<ABC>();
    ABC abc1=new ABC(1,1.0f);
    ABC abc2=new ABC(2,2.0f);
    list.add(abc1);
    list.add(abc2);

现在我想用toArray()方法将 ArrayList 转换为数组,但是这个方法返回Object[];.

现在我可以将元素Object[]一个一个地类型转换为 ABC 类型对象并创建ABC[];

但是有没有其他方法可以在一个命令中将 Object[] 类型转换为 ABC[] ?像这样的东西

    ABC[] array=(ABC[])list.toArray();

虽然这个命令抛出了这个异常

线程“main”中的异常 java.lang.ClassCastException: [Ljava.lang.Object; 不能转换为 [LABC;**

任何帮助

4

2 回答 2

4

List接口有一个toArray返回泛型数组的方法,因此您可以使用useArrayList's implementation of that

ABC[] array = new ABC [list.size()]
array = list.toArray(array);
于 2013-02-18T17:46:26.467 回答
0

toArray() 文档

ABC[] array = list.toArray(new ABC[list.size()])
于 2013-02-18T17:48:20.173 回答