打印

[Java] 请教关于java里类复制的问题

请教关于java里类复制的问题

向各位高手请教关于java里对象复制的问题
首先,通过嵌套得到一个TreeNode树结构对象
public class TreeNode implements Cloneable {

    public Vector childNode=new Vector();
    public Vector processVector=new Vector();
    public TreeNode parentNode=null;  
    public String partId=null;
        
    public TreeNode(String partId,TreeNode parentNode) {
        this.parentNode=parentNode;
        this.partId=partId;
        getParts();
    }
    public TreeNode() {
    }
    private void getParts(){
        ...
          while(db.rs.next()){                    
              childNode.add(new TreeNode(db.rs.getString("partId"),this));                  
          }
    }
    public Object clone() {
        Object object=null;
        try{
            object=super.clone();            
        } catch (CloneNotSupportedException e) {
            object=null;
        }
        return object;
    }
}

然后,将多个TreeNode 对象存入vector V1中
...
  while(db.rs.next()){
      V1.add(new TreeNode(db.rs.getString("partId"), null));
  }
...

让V1作为副本,将其复制给V2。
如何将整个V1里的TreeNode 对象复制到V2中,而使原有的V1中的所有树不因对V2的操作而发生改变?
自己写了这样的一段代码,但不起作用。请各位高手多多指点,先在此谢过!
...
for(int m=0;m <V1.size();m++){
            tt=new TreeNode();
            tt=(TreeNode)((TreeNode)V1.elementAt(m)).clone();
            V2.addElement(tt);

TOP

commons lang 项目里有个深层复制的东东样的

TOP

clone对类的成员变量都是基本数据类型才有效
如果成员变量是引用,那就要对该引用的类继续clone
不行的话,写个copy构造函数,
不过也要涉及递归copy

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

深度克隆对象,必须克隆所有可变的实例对象

public class TreeNode implements Cloneable {
    public Vector childNode=new Vector();
    public Vector processVector=new Vector();
    public TreeNode parentNode=null;  
        
    private void getParts(){
          while(db.rs.next()){                    
              childNode.add(new TreeNode(db.rs.getString("partId"),this));                  
          }
    }
   
    public Object clone() {

        TreeNode  clone =(TreeNode)super.clone();

                clone.processVector=(vector)processVector.clone()
        
                return clone;
    }
}
///
试试吧!

TOP

是对象复制不是类复制......

TOP

对象复制,覆写clone方法。
[color=chocolate]when you say nothing at all![/color] [color=green]欢迎来播种:[/color][url=http://blog.sina.com.cn/u/1190833895][color=blue]Dennis的一亩三分地[/color][/url]

TOP

楼主可以搜索一下深克隆和浅克隆相关的内容
[php] 使君欲醉离亭酒 酒醒离愁转有 紫禁多时虚右 苕霄留难久 一声歌掩双罗袖 日落乱山春后 犹有东城烟柳 青荫长依旧 [/php]

TOP

序列化,然后反序列化

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-12-3 08:46 京ICP证060528 号

Designed By 17DST