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