【发布时间】:2014-01-22 10:19:20
【问题描述】:
我正在开发一个具有一些参数作为配置数据的应用程序。我编写了一个 Swing 应用程序并将一个类声明为 ConfigClass。我将配置参数字段添加到该类并通过可序列化实现将其存储到一个文件中。
在读写期间,我应用加密来保护密码。
在我的应用程序的未来版本中,我将添加或删除一些字段,并希望我的客户不要失去价值。所以我尝试使用“serialVersionUID=34L”当我的客户升级我的应用程序时,新应用程序可以读取旧配置并获取旧/新公共字段。这样,我的客户就不会再次推动重新输入数据。问题是当我删除字段和以上协议时不能正常工作!为什么?
public class UserConfiguration implements Serializable {
static final long serialVersionUID = 42L;
//USER Define User Config elements
private String bankName;
private String bankCode;
}
【问题讨论】:
-
因为它是一个糟糕的协议。你需要一些更复杂的东西,对不同版本的配置进行特殊处理。
标签: java serializable