簡體   English   中英

當類已更改時,從文件中加載序列化的類(Java / Android)

[英]Loading serialized class from file, when class has changed (Java/Android)

我找到了許多有關如何將序列化的類寫入文件或從文件中讀取序列的答案,並將其成功實現到我的Android應用程序中,但是我遇到了擴展應用程序功能的問題。

例如,如果我有carClass:

String make;
String model;

然后,將其保存到保存文件中,每當我加載它時,存儲的值就可以了:)

但是當我嘗試擴展類以包含其他內容時,即顏色:

String make;
String model;
String color;

當應用程序加載文件時,它將嘗試將對象強制轉換為新類,並且由於加載的對象沒有“顏色”,因此無法加載保存文件。

我該如何克服呢? 目前,每次我向應用程序添加新內容時,用戶的保存文件實際上都是無效的,必須重新啟動,這不是良好的用戶體驗!

在您的類中聲明一個static final long serialVersionUID 這將使其向前/向后兼容,例如

String make;
String model;
private static final long serialVersionUID = 0L;

與...兼容

String make;
String model;
String color;
private static final long serialVersionUID = 0L;

只要您保持serialVersionUID的值相同即可。 文檔這里的機器人, 這里正常的Java。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM