私はクラス(リテラル)を持っています。私は、アプリケーション全体を通してメモリに無傷のリテラルインスタンスを保持できるようにする必要があり、私が変更できるコピーを持っている必要があります。私はこれを行うには、2つの方法を使用していますオブジェクトのJavaディープコピーを作成するにはどうすればよいですか?
- クラス
Literal
はCloneable
を実装し、Object.clone()
メソッドをオーバーライドします。 工場コンストラクタ:コピーが動作しない、両方のケースで
public Literal(Literal lit){ this = lit; }
。私がコピーに加えるすべての変更は、オリジナルを変更します。誰かが私が間違っていることを知っていますか? Literal
以来
のような何かをする必要があるだろうが唯一の浅いcopying.checkは、http、このポストであります://stackoverflow.com/questions/64036/how-do-you-make-a-deep-copy-of-an-object-in-java –
Javaで作業することはできますか? * Factoryコンストラクタ*(通常はこれをコピーコンストラクタ*と呼びます)の2回目の試みはコンパイルエラーになります。 "最終変数thisに値を代入することはできません" –