大晚上的报这么个错,搞了半天
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LApple;
at ArrayTrans.main(ArrayTrans.java:27)
原来java是不可以将object数组直接转化为对应类型的数组的。
Apple ap1 = new Apple("ap1");
Apple ap2 = new Apple("ap2");
Apple ap3 = new Apple("ap3");
Apple ap4 = new Apple("ap4");
List<Apple> al = new ArrayList<Apple>();
al.add(ap1);
al.add(ap2);
al.add(ap3);
al.add(ap4);
Apple[] aArray = (Apple[]) al.toArray();代码如上,或者简单点如下:
Apple ap1 = new Apple("ap1");
Apple ap2 = new Apple("ap2");
Apple ap3 = new Apple("ap3");
Apple ap4 = new Apple("ap4");
Object[] ol = new Object[20];
ol[0]=ap1;
ol[1]=ap2;
ol[2]=ap3;
Apple[] aArray = (Apple[])ol;如果必须如此转化:
Apple ap1 = new Apple("ap1");
Apple ap2 = new Apple("ap2");
Apple ap3 = new Apple("ap3");
Apple ap4 = new Apple("ap4");
List<Apple> al = new ArrayList<Apple>();
al.add(ap1);
al.add(ap2);
al.add(ap3);
al.add(ap4);
Apple[] aArray = new Apple[al.size()];
al.toArray(aArray);
al.clear();
System.out.println(al.size());
System.out.println(aArray[3].toString());
本文探讨了Java中Object数组向特定类型数组转换时遇到的问题及解决方法。通过具体示例展示了直接转换导致ClassCastException异常的原因,并提供了正确的转换方式。
1460

被折叠的 条评论
为什么被折叠?



