【发布时间】:2013-02-03 05:37:53
【问题描述】:
我有课
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;**
任何帮助
【问题讨论】:
-
强制转换不改变对象的类,数组的类是
Object[]。您可以使用 System.arraycopy 将数组复制到所需的类之一中。