java - 覆盖系统类的serialVersionUID

标签 java serialization deserialization

有没有办法覆盖java系统类的serialVersionUID?

错误示例: java.io.InvalidClassException:java.util.Date;本地类不兼容:流classdesc serialVersionUID = 7523895402267505689,本地类serialVersionUID = 7523967970034938905

客户端和服务器有不同版本的java。但因为我知道类是相同的,所以我希望能够使用序列化。

最佳答案

Q&A的第一个答案彼得·牛顿发现了一种很有前途的方法。基本上,示例代码重载了从流中读取类描述符并调整串行版本 ID 的方法。如果您要对多个类执行此操作,则需要相应地调整代码。

但请注意,这是一件相当危险的事情。如果传输的类表示不兼容,您可能会在没有任何警告的情况下得到损坏的对象。

关于java - 覆盖系统类的serialVersionUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457782/

相关文章:

java - Spring序列化时如何忽略临时对象属性

php - 您不能在 laravel 中序列化或反序列化 PDO 实例

android - 如何在 json 反序列化期间从列表中删除某些元素?

c# - 序列化-反序列化(二进制)

java - ArrayList 是否有可能在单写多读系统中失败?

java - 如何在java套接字编程中使用单个服务器创建多个客户端?

java - 自动化 JNI 构建

Dictionary<string, object> 的 C# MongoDb 序列化

python - 在Python中使用BSON将 float 组序列化/反序列化为二进制文件

java - 如何设置值 <security :authentication/> to the parameter with <c:set>