ディープクローンユーティリティのすすめ【終了
2023-08-26 19:30:45
質問
java コレクションのディープクローニングのためのユーティリティはありますか。
- 配列
- リスト
- 地図
注:シリアライズを使用せず、Object.clone()メソッドを使用したソリューションを希望しています。私のカスタムオブジェクトがclone()メソッドを実装し、クローン可能なJava標準のクラスのみを使用することを確認できます。
どのように解決するのですか?
私は前の緑の答えが悪かったと思う なぜでしょうか?
- 多くのコードが追加される
- コピーするすべてのフィールドをリストアップし、これを実行する必要があります。
- これは、clone()を使用する場合、Listでは動作しません。 (これはHashMapのclone()が言っていることです。このHashMapインスタンスの浅いコピーを返します: キーと値自体はコピーされません)。
あ、ちなみにシリアライズもダメで、Serializableを付けまくらないといけないかもしれません(これも泣ける)。
で、解決策はというと。
Javaディープクローニングライブラリ クローニングライブラリ は、オブジェクトのディープクローニングを行う小さなオープンソース (apache license) の Java ライブラリです。オブジェクトは Cloneable インターフェースを実装する必要はありません。事実上、このライブラリはあらゆるJavaオブジェクトのクローンを作成することができます。例えば、キャッシュされたオブジェクトを変更されたくない場合や、 オブジェクトのディープコピーを作成したい場合に使用できます。
Cloner cloner=new Cloner();
XX clone = cloner.deepClone(someObjectOfTypeXX);
でチェックしてみてください。 https://github.com/kostaskougios/cloning
関連
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
型に解決できない エラー解決
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] C#で汎用リストをクローンする方法は?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み] Java: インスタンスのディープクローン/コピーのための推奨ソリューション
-
[解決済み] clone() vs copy コンストラクタ vs ファクトリメソッド?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
シェルコマンドやスクリプトのJavaコール
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] オブジェクトのディープコピーはどのように作るのですか?
-
[解決済み] ArrayListをクローンし、その内容もクローンする方法は?