typecast Object []进入OtherObject []

时间:2013-02-18 17:45:12

标签: java casting arraylist

我有一个班级

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; **

任何帮助

2 个答案:

答案 0 :(得分:4)

List interfacetoArray方法返回通用类型的数组,因此您可以useArrayList's implementation of that

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

答案 1 :(得分:0)

toArray() documentation

ABC[] array = list.toArray(new ABC[list.size()])