小编典典

如何在 Java 中复制对象?

all

考虑下面的代码:

DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // prints 'foo'

DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // prints 'foo'

dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'

所以,我想dum在不dumtwo影响.
但是上面的代码并没有这样做。当我改变一些东西时,同样的改变也在发生。dum``dumtwo``dum``dumtwo

我想,当我说dumtwo = dum,Java 仅复制参考 。那么,有没有办法创建一个新的副本dum并将其分配给dumtwo?


阅读 120

收藏
2022-03-01

共1个答案

小编典典

创建一个复制构造函数:

class DummyBean {
  private String dummy;

  public DummyBean(DummyBean another) {
    this.dummy = another.dummy; // you can access  
  }
}

每个对象还有一个克隆方法,可以用来复制对象,但不要使用它。创建一个类并执行不正确的克隆方法太容易了。

2022-03-01