2012-03-18 17 views
1

オブジェクトのシリアライゼーションに関して私が見たすべての例では、すべてのフィールドのコンストラクタとゲッターとセッターメソッドがすべてのフィールドに含まれています。これは必然ですか?あなたは、直列化可能なインターフェイスでそれをタグ付けし、すべての非過渡的なフィールドを保証するために、直列化可能なJavaオブジェクトを作成するためには何をしなければなりませんか?Javaとオブジェクトのシリアライゼーション

答えて

4

前述の基本的な手順を除き、オブジェクトをシリアライズ可能にする必要はありません。 getter/setterや特定のフォームのコンストラクタが存在するための要件はありません(しかし、それらを必要とする正当な理由があるかもしれません)。

+1

GettersはあなたのObjectから必要な情報を得るための安全な方法であり、何らかの理由でそれを変更する必要がある場合に備えて、良いアイデアを考えてください。 –

2

コンストラクタ/ getters/settersは必須ではありません。直列化不可能なオブジェクトへの参照を含む直列化可能ではあるが、非一時的なコレクションは失敗を引き起こす。