我有一个班级
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; **
任何帮助
答案 0 :(得分:4)
List
interface有toArray
方法返回通用类型的数组,因此您可以use
ArrayList's implementation of that
:
ABC[] array = new ABC [list.size()]
array = list.toArray(array);
答案 1 :(得分:0)
ABC[] array = list.toArray(new ABC[list.size()])