可能重复: 如何在Java中复制对象?
我的类Claus中有一个函数,它调用一个函数来接受Claus类型。我目前正在将this作为参数传递,但是它正在编辑类的当前实例,我不希望它这样做。相反,我希望它克隆类的当前实例并对其进行编辑,同时保持副本分离。我怎么能这么做?
编辑
也许我该进一步澄清我的问题.
我有一个物体在另一个物体里面。例如Claus和floss。我一直在读shallow copy vs deep copy的文章,我认为Claus的复制是正确的。我就像.
public Claus(Claus g){
cla = new Floss(g.getFloss());
//irrelevant other variables...
p = g.getP();
c = g.getC();
}但是,Claus中的函数,我在构造函数中声明的方式完全相同。那就是..。
cla = new Floss(g.getFloss());其中cla = Floss变量和g= Claus,这两个变量正在传递给构造函数。Floss对象似乎并没有像它应该的那样创建一个深拷贝。为什么会发生这种情况?
发布于 2011-12-12 22:44:40
实现Cloneable并使用this.clone(),就像任何其他变量一样。
发布于 2011-12-12 22:44:52
您应该看看Object#clone方法
http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#clone%28%29
发布于 2011-12-12 22:45:13
考虑为您的类实现复制构造函数。这是一个构造函数,它接受相同类型的另一个实例,并将其状态复制到新对象中。
https://stackoverflow.com/questions/8481952
复制相似问题