Java中Object数组对象转型泛型对象数组
请问为什么Object类型数组转型为泛型数组运行会报错?例如:
Object[] o = new String("str","333");
String[] str = (String[])o;
System.out.println(str);//此处运行不报错
Object[] os = new Object[]{new ArrayList<People>(),new ArrayList<People>()};
ArrayList<People>[] als = (ArrayList<People>[])os;
System.out.println(als[0].get(0).getName());//此处运行出错
错误提示:[Ljava.lang.Object; cannot be cast to [Ljava.util.ArrayList;
为什么不能将Object强制转型为ArrayList呢 转型 Java --------------------编程问答-------------------- 当然不能转了,你只能 (ArrayList<People>)os[0], (ArrayList<People>)os[1],因为os是object[]的!它存放的元素才是ArrayList<People>()的! --------------------编程问答-------------------- 里面的als 是个ArrayList<Person>[]数组呀,os也是个数组!
补充:Java , Java SE