2012-07-30 40 views
0

我有那人面試新成員時使用的面試問題列表中的標準程序。問題是硬編碼的,面試官記錄了問題的答案。提交時的答案被添加到一個對象(稱爲iQuestions),然後存儲在服務器上的.txt文件中。好時代的變化,現在我們要添加到列表中,這是很容易做到,但是當我改變了服務器和客戶機的iQuestions,舊記錄彈出一個「序列化對象」錯誤(該對象的其他問題保存與程序中的對象不同,我試圖從中獲得什麼是最簡單的方法來通過這個?一個字段添加到現有的矢量

回答

0

這是沒有在Serializable類中定義的靜態serialVersionUID可以在以後刻錄正如你的狀態,你的新的序列化類的版本比被用來保存關閉數據的不一樣,因此「自動」反序列化不能確定如何讀取數據返回到您的新版本的類(http://www.javapractices.com/topic/TopicAction.do?Id=45 )如果你仍然可以訪問原始的iQuestions類,你可以考慮寫一個轉換器,用o riginal類,然後寫出來的相關數據成另一種格式(可能使用一個數據庫來存儲這些問題會更可靠,更易於更新或JSON在簡單的文本文件存儲?)。

+0

所以如果我聲明的serialVersionUID 1234567帶有字段ABC,後來過來,並添加d的對象,但保留的serialVersionUID 1234567,那麼我應該能夠訪問存儲的對象,只是有ABC的領域以及版本有ABCD的對象? 編輯:我沒有訪問MySQL並沒有任何經驗,使用它裏面的Java或使用JSON對象,所以我寧可不使用這些選項的任何經驗。 – 2012-07-30 19:12:18

相關問題