現在、ユーザーのセッションオブジェクトをデータベースにシリアル化していますが、オブジェクトが最近変更されすぎてこのプロセスを再設計することにしました。オブジェクト全体をシリアライズすることはできず、フィールドごとに保存する必要があることに私たちは皆同意します。Javaシリアル化:readFields/putFieldsとシリアル化されたマップの比較
- マップにすべてのフィールドを格納し、マップをシリアル化します。
ObjectOutputStream.putFields()
を使用してください。
これら2つのアプローチの間に大きな違いはありません。 #1は使い慣れたマップインターフェイスを使用しているため、誰でも簡単に使用できます。 #2は、fields.get("confirmed", false)
などの便利な方法を提供します。
#1と一緒に行く傾向があります。誰も#2の他の利点を知っていますか?