下位互換性のある方法で逆シリアル化できるオブジェクトをシリアル化する一般的な方法を次に示します。
1.インスタンスの再作成に必要なすべてのフィールドを保存するように設計されたメソッドを使用して、 JSON形式でデータを保存します。バージョンが低すぎる場合に更新アルゴリズムを呼び出すことができるキーを含めることで、これに後方互換性を持たせることができます。このための一般的なライブラリは、通常は JSON ファイルを編集するだけでなく、JSON で Java オブジェクトを表現できるGoogle Gsonライブラリです。import
export
version
2.上記の方法と同様の方法で、組み込みの Javaプロパティクラスを使用します。store()
プロパティ オブジェクトは、通常の Java プロパティ ファイルとして記述されたストリーム ( ) を使用して後で格納するか、 XMLで保存する( storeToXML()
) ことができます。
3.単純なオブジェクトは、JSON、XML、またはプロパティ ファイルに格納することが複雑すぎるか、または必要でない場所で、キーと値のペアで簡単に表すことができる場合があります (やり過ぎと言えます)。この場合、オブジェクトをシリアル化する効果的な方法は、ObjectOutputStreamクラスを使用して、キーが で、値が( )HashMap
であるキーと値のペアを含むオブジェクトをシリアル化することです。これにより、多くの汎用性を提供しながら、オブジェクトのすべてのフィールドを保存できるだけでなく、キーを含めることができます。String
Object
HashMap<String,Object>
version
注: for persistence ストレージを使用してオブジェクトをシリアル化することObjectOutputStream
は、通常は悪い規則と見なされますが、クラスのソース コードが同じままである限り、どちらの方法でも使用できます。
バージョニングについても注意してください:クラスへの変更は、互換性のある変更ObjectOutputStream
である限り、逆シリアル化を中断することなく安全に行うことができます。Object Serialization Specification の Versioning of Serializable Objects の章で説明されているように:
互換性のある変更とは、クラスとその呼び出し元の間の契約に影響を与えない変更です。