最近重装了系统,但eclipse的jdk还是以前的,以前的代码,只要有对数组的类型转换就抛异常,但如果循环转换就没问题,但我以前工程里的代码不可能每个都改,工程太大,而且也没错误比如ClassA extends ClassB,如果把ClassA[]作为参数传到参数是ClassB[]的方法里,再强制转换为
ClassA[],就报类型转化异常的错误,如果循环对每个ClassB转化为ClassA,再放到数组里就没问题ClassA[] as;
.....;
dosth(as);private dosth(ClassB[] bs){
ClassA[] as = (ClassA[]) bs;//这里抛异常ClassCastException
}
ClassA[],就报类型转化异常的错误,如果循环对每个ClassB转化为ClassA,再放到数组里就没问题ClassA[] as;
.....;
dosth(as);private dosth(ClassB[] bs){
ClassA[] as = (ClassA[]) bs;//这里抛异常ClassCastException
}
private dosth(ClassB[] bs){
Vector v = new Vector();
for(int i=0;i<bs.length;i++){
}
}
如果private dosth(ClassB[] bs)写成这样就没问题
private dosth(ClassB[] bs){
Vector v = new Vector();
for(int i=0;i <bs.length;i++){
ClassA a = (ClassA)bs[i];
v.add(a);
}
ClassA[] as = new ClassA[v.sise()];
v.copyInto(as);
}
就没有问题,但工程太大,而且以前的无误代码也不可能随便改
这种写法觉得很怪...