如果您采用从未显式指定过serialVersionUID的旧可序列化对象,并将serialVersionUID添加到该对象,会发生什么情况?在我看来,下次最终用户更新应用程序时,它会尝试反序列化光盘中的数据,发现serialVersionUID不匹配,用来自服务器/数据库/其他内容的新数据覆盖数据,然后您很好。我的这个假设正确吗?这样做时我还应该注意其他问题吗?
private class X implements serializable {...
private static final long serialVersionUID = 0L;
- 如果您给它的值与运行以下命令显示的值相同
serialver
类上的工具就像现在一样,没有任何反应。
- 如果您给它一个不同的值,包括该类在内的现有串行流的进一步反序列化将失败并显示
InvalidClassException
.
在我看来,下次最终用户更新应用程序时,它会尝试反序列化光盘中的数据
Correct.
发现serialVersionUID不匹配
除非确实不匹配。如果您遵循上述建议,它将匹配。
用来自服务器/数据库/其他内容的新数据覆盖数据
不正确。往上看。
之后你就没事了。
No.
我的这个假设正确吗?
No.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)