类型转换对象[]到OtherObject []
问题描述:
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);
现在我要到ArrayList转换成数组toArray()
方法,但是这个方法返回Object[];
。
现在我可以强制转换由一个的Object[]
一个元素到ABC型对象,并创建ABC[];
,
但是否有任何其他的方式来强制转换对象[]到ABC []在一个命令?事情是这样的
ABC[] array=(ABC[])list.toArray();
虽然此命令抛出该异常
异常在线程 “主要” java.lang.ClassCastException:[Ljava.lang.Object;不能被转换为[LABC; **
任何帮助
答
的List
interface有toArray
方法返回的一般类型的数组,这样你就可以use
ArrayList's implementation of that
:
ABC[] array = new ABC [list.size()]
array = list.toArray(array);
Cast不会更改对象的类和数组的类是'Object []'。您可以使用System.arraycopy将数组复制到所需的类之一。 – 2013-02-18 17:50:26