日期:2014-05-20 浏览次数:21037 次
public class Test {
  public static void main(String args[]) {
    Ja ja1 = new Ja();
    ja1.setI(9);
    Ja ja2 = ja1.clone(); // 调用clone方法实现复制
  }
}
class Ja {
  public int i;
  public void setI(int i) {
    this.i = i;
  }
  public int getI() {
    return i;
  }
  @Override
  public Ja clone() { // 自定义的clone方法
    Ja a = new Ja();
    a.setI(this.getI());
    return a;
  }
}
------解决方案--------------------
浅克隆:因为楼主类中没有对象引用,所能用Object的clone()方法 ,你的类应该实现Cloneable接口。
class Ja implements Cloneable {
    public int i;
    public void setI(int i) {
        this.i = i;
    }
    public int getI() {
        return i;
    }
    @Override
    public Object clone() throws CloneNotSupportedException { // 自定义的clone方法
        return super.clone();
    }
}
public class Test {
          public static void main(String args[]) {
            Ja ja1 = new Ja();
            ja1.setI(10);
            Ja ja2 = null;
            try {
                ja2 = (Ja)ja1.clone();
            } catch (CloneNotSupportedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } // 调用clone方法实现复制
            System.out.println(ja2.getI());
            
          }
}
------解决方案--------------------
调用超类  
也就是Cloneable 接口