私は、人々が新会員に面接するときに使用する面接の質問のリストを備えた標準的なプログラムを持っています。質問はハードコーディングされており、インタビュアーは質問への回答を記録します。送信された回答はオブジェクト(iQuestionsと呼ばれます)に追加され、サーバー上の.txtファイルに保存されます。時代は変わり、リストに質問を追加したいのですが、これは簡単に実行できますが、サーバーとクライアントの両方でiQuestionsを変更すると、古いレコードが「シリアル化されたオブジェクト」エラー(オブジェクト保存されたものは、取得しようとしているプログラムのオブジェクトと同じではありません。これを乗り越える最も簡単な方法は何ですか?
質問する
66 次
1 に答える
0
これは、Serializable クラスで静的な serialVersionUID が定義されていないと、後でやけどをする可能性がある場所です。あなたが述べているように、シリアライズ可能なクラスの新しいバージョンは、データを保存するために使用されたものとは異なるため、「自動」逆シリアル化では、データを新しいバージョンのクラスに読み込む方法を決定できません ( http: //www.javapractices.com/topic/TopicAction.do?Id=45 )。元の iQuestions クラスにまだアクセスできる場合は、元のクラスを使用して質問をデシリアライズし、関連データを別の形式に書き出すコンバーターを作成することを検討してください (おそらく、データベースを使用して質問を保存する方が信頼性が高く簡単です)。簡単にするために、JSON としてテキスト ファイルに更新または保存する必要がありますか?)。
于 2012-07-30T18:55:06.373 に答える