首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >兼容变更和serialversionUID

兼容变更和serialversionUID
EN

Stack Overflow用户
提问于 2015-07-11 17:40:32
回答 1查看 376关注 0票数 1

我需要一个关于兼容变更和serialVersionUID (http://docs.oracle.com/javase/6/docs/platform/serialization/spec/version.html#6678)的建议。

我在一个具有“client”项目的系统上工作,该项目使用RPC与'server‘项目通信('server’使用DTO类从DB导出数据,'client‘使用相同的DTO类显示数据)。

当字段添加到DTO类中时,团队决定不更改serialversionUID,因此当部署了新版本的“server”时,“client”不需要立即部署,因为该DTO类的旧版本与新版本兼容。

但是(由于两个项目都有几十个系统实例),如果一个新版本的“client”与新版本的DTO类一起部署,而“server”由于某种原因仍然保留在旧版本,那么DTO类的新字段将解析为null,并将显示为null给客户,这可能是不正确的。

是否有解决这一问题的最佳做法?我们可以在DTO类中的任何类型的更改上更改UID,但是在不使用更改的情况下,我们总是必须同时部署两个项目,并且我们试图避免这种情况.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-12 00:34:05

更改UID不是解决方案,而是问题的一部分。别干那事。

添加新字段时,还可以将逻辑添加到同一个类的readObject()方法中,如果为null,则为其提供一个合理的默认值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31359983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档