浅复制:只复制基本数据类型。
深复制:复制包括引用在内的所有内容。
这个没搞错吧。

解决方案 »

  1.   

    看看这个帖子
    http://topic.csdn.net/u/20101114/23/99447a93-5146-481a-a26e-d6269066edcd.html?30129你们不会是同学吧?
      

  2.   

    对test的深拷贝,等于说重新生成了一个test的对象,
    浅拷贝的话,直接super.clone就行了
    或者return this
    public class Test {
    private int total;
    private Test test;
    public Test getTest() {
    return test;
    }
    public void setTest(Test test) {
    this.test = test;
    }
    public int getTotal() {
    return total;
    }
    public void setTotal(int total) {
    this.total = total;
    }
    public Object clone() {
    Test clone = new Test();
    clone.setTotal(this.getTotal());
    clone.setTest(this.getTest());
    return clone;
    }
    }
    附带一个二叉树的深拷贝简单代码:
    /**
     * 二叉树深拷贝
     * @param node
     * @param treeNode
     */
    public void copy(BinTreeNode<T> node,BinTreeNode<T> treeNode){
    if(node == null){
    return ;
    }else{
    treeNode.setValue(node.getValue());
    if(node.getLeftNode()!=null){
    BinTreeNode<T> tempNode= new BinTreeNode<T>();
    treeNode.setLeftNode(tempNode);
    copy(node.getLeftNode(),tempNode);
    }
    if(node.getRightNode()!=null){
    BinTreeNode<T> tempNode = new BinTreeNode<T>();
    treeNode.setRightNode(tempNode);
    copy(node.getRightNode(),tempNode);
    }
    }

    }