最近重装了系统,但eclipse的jdk还是以前的,以前的代码,只要有对数组的类型转换就抛异常,但如果循环转换就没问题,但我以前工程里的代码不可能每个都改,工程太大,而且也没错误比如ClassA extends ClassB,如果把ClassA[]作为参数传到参数是ClassB[]的方法里,再强制转换为
ClassA[],就报类型转化异常的错误,如果循环对每个ClassB转化为ClassA,再放到数组里就没问题ClassA[] as;
.....;
dosth(as);private dosth(ClassB[] bs){
  ClassA[] as = (ClassA[]) bs;//这里抛异常ClassCastException
}

解决方案 »

  1.   

    如果private dosth(ClassB[] bs)写成这样就没问题
    private dosth(ClassB[] bs){
      Vector v = new Vector();
      for(int i=0;i<bs.length;i++){
    }
    }
      

  2.   

    上面不小心没写完就发了……
    如果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);
    }
    就没有问题,但工程太大,而且以前的无误代码也不可能随便改
      

  3.   

    > ClassA[] as = (ClassA[]) bs;
    这种写法觉得很怪...