私のフレームワークは、あらゆるクラスのドメイン オブジェクトを処理します。foo
そのようなドメインオブジェクトインスタンスを実装したかのように(実装Cloneable
していない)浅いクローンを作成できる必要がありObject.clone()
、浅いクローンを返すそれを呼び出しました。
動作しないもの:
- foo のクラスに実装
Cloneable
を強制し、そのために public メソッドを実装しますclone()
。 - リフレクションを介して foo.clone() を呼び出します (保護されたメソッドに到達するため
Object.clone()
)。のクラスが実装されていないCloneNotSupportedException
ため、スローされます。foo
Cloneable
- foo のシリアル化と逆シリアル化: ディープ コピーではなく、浅いコピーが必要です。
制限:
foo
のクラスはコンパイル時にわかりません。foo
ゲッター/セッターとして公開されていないフィールドがある可能性があります。
注: 同様の質問がいくつかありますが、浅いクローンの取得に焦点を当てているものはありません。