あくまでも参考になります。実行する場合:
copyAllNodes.add(node)
node
オブジェクトである を に挿入しますcopyAllNodes
。
オブジェクトのコピーが必要な場合は、他のアプローチがあります。アプローチの 1 つは、close
基本的にCloneable
インターフェイスを実装し、オブジェクトをコピーするためにメソッドを公開clone
することです。したがって、次のようなことができます。
copyAllNodes.add(node.clone)
これは、コピーされたオブジェクトに影響を与えることなく変更できるコピーになります。デフォルトの clone メソッドは、オブジェクトの浅いコピーを行うだけであることを覚えておくとよいでしょう。
ドキュメントから:
クラス Object のメソッド clone は、特定の複製操作を実行します。まず、このオブジェクトのクラスがインターフェース Cloneable を実装していない場合、CloneNotSupportedException がスローされます。すべての配列は、インターフェイス Cloneable を実装すると見なされることに注意してください。それ以外の場合、このメソッドはこのオブジェクトのクラスの新しいインスタンスを作成し、割り当てによるかのように、このオブジェクトの対応するフィールドの内容を正確に使用してすべてのフィールドを初期化します。フィールドの内容自体は複製されません。したがって、このメソッドは、「ディープ コピー」操作ではなく、このオブジェクトの「浅いコピー」を実行します。