错误信息:”Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
这个异常是下面的代码抛出的:
//转换为数组。
Student [] stuarray=(Student [])stus.toArray();
这个类型转换看上去好像很对,也不会有编译错误。
但是实际上是错误的,因为list.toArray返回类型是Object[],而Integer[]不是Object[]的子类,虽然Integer是Object的子类,但是不能进行强制转换。
正确的做法应该是这样的://这里的Student是自定义的一个类
List<Student> list=new ArrayList<Student>();
Student [] stuarray=new Student[4];
stuarray=list.toArray(stuarray);
for(int i=0;i<stuarray.length;i++) {
System.out.println(stuarray[i])
}
把数组类型传入toArray方法,通过反射获得参数类型,在方法内部进行转换。