Javaでオブジェクトをコピーするにはどうすればいいですか? 質問する

Javaでオブジェクトをコピーするにはどうすればいいですか? 質問する

以下のコードを考えてみましょう。

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変更したいのですが、上記のコードではそれができません。 で何かを変更すると、 でも同じ変更が行われます。dumdumtwodumdumtwo

と言うと、dumtwo = dumJava は参照のみdumをコピーすると思います。では、 の新しいコピーを作成して に割り当てる方法はあるのでしょうかdumtwo?

ベストアンサー1

コピー コンストラクターを作成します。

class DummyBean {
  private String dummy;

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

すべてのオブジェクトには、オブジェクトをコピーするために使用できるクローンメソッドもありますが、使用しないでください。クラスを作成して不適切なクローンメソッドを実行するのは非常に簡単です。そうするつもりなら、少なくともJoshua Blochがそれについて言っていることを読んでください。効果的なJava

おすすめ記事