ArrayList<classA> aList = /*I then fill this array*/
ArrayList<classB> bList = /* I then fill this array too*/
/*Now put them both in the following ArrayList of Objects*/
ArrayList<Object> myObjs = new ArrayList<Object>();
myObjs.add(aList);
myObjs.add(bList);
/*The following two lines however fails at run time*/
ArrayList<classA> x = (ArrayList<classA>) myObjs.get(0);
ArrayList<classB> x = (ArrayList<classB>) myObjs.get(1);
我刚刚从另一个线程读取为什么下面向下铸造在Java中是行不通的:
任何一个可以请告诉我“时,有它成功的在运行时可能向下转换允许”上面代码的问题? 非常感谢你!
这是因为Java集合不是协变的。 'List'不是'List
如果你有问题的答案,你可能应该这样发布。 – 2012-07-28 14:13:27