我想把一个对象数组传到另外一个类中,请问这个怎么传递呢?例如:
import java.lang.*;
public class pictureInComp  extends computer implements Cloneable{
public Object clone(){
try{
return super.clone();
}
catch(CloneNotSupportedException ex){
return null;
}
}
}public class encoding {
       private pictureInComp[] tempMemory;
   //将对象数组dataAfterDivision传给tempMemory
       public encoding(pictureInComp[] dataAfterDivision){
tempMemory = dataAfterDivision.clone();//在编辑中提示这个是错的。
}
}
这样写出错原因是什么呢?忘高手指点。谢谢先!

解决方案 »

  1.   

    你只是在对象pictureInComp 重写了clone()方法,而并不是重写了"Array"的clone()方法.
      

  2.   

    循环一下pictureInComp[] dataAfterDivision 一个个来克隆给pictureInComp[] tempMemory;估计可以。
      

  3.   

    1 clone() 方法返回的是object对象 所以你在编辑的时候就会出错 需要做强制类型转换。2  注意 你调用  pictureInComp[] 得clone()方法的时候并不会重新获得新的对象数组, 因为因为你并没有重写对象数组的clone()方法 并且对象数组的clone()方法也不会去自动调用他每个成员的clone()方法。
      

  4.   

    public Encoding(PictureInComp[] dataAfterDivision) {
    tempMemory=new PictureInComp[dataAfterDivision.length];
    try
    {
      for(int i=0; i<dataAfterDivision.length;i++)
      tempMemory[i]=(PictureInComp)(dataAfterDivision[i].clone());  
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
      

  5.   

    既然返回的是super.clone()不知道重写还有什么意义?!
      

  6.   

    如果你的对象里 含有对象级的成员变量 这时候就需要你进行深度拷贝,这时候重写.clone() 就有意义了,否则只是简单的调用super.clone()!