讀取簽名更改了可序列化的對象我有一個Serializable
類,其名稱爲SimpleClass
,它具有屬性和方法。我使用下面的代碼來寫入和從文件中讀取它的對象。從文件
保存(W/O異常處理代碼):
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(simpleClass);
os.close();
fos.close();
負荷(W/O型的異常處理代碼):
FileInputStream fis = context.openFileInput(fileName);
ObjectInputStream is = new ObjectInputStream(fis);
SimpleClass simpleClass = (SimpleClass) is.readObject();
is.close();
fis.close();
一段時間後,我添加了一個吸氣劑方法將其(只有方法,而不是屬性)。
之後,SimpleClass simpleClass = (SimpleClass) is.readObject();
失敗。該文件在那裏,我假設添加的方法造成了這種情況。
即,保存在文件內部的對象與我現在擁有的對象不同。
有沒有解決這個問題的方法?如何在不刪除附加方法的情況下讀取舊對象?
你是否爲你的SimpleClass使用了serialversionUID – Kandy