This theme is built with a|

ageovb

园龄:13年2个月粉丝:13关注:0

2022-10-15 16:33阅读: 593评论: 0推荐: 0

尽量不要使用枚举作为请求和响应参数

在阿里巴巴开发手册中有这样一条强制规定值得大家关注:

【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的 POJO 对象。

通常情况下,服务端(二方库提供者)会先上线,客户端(二方库使用者)陆续更新。

基于这种情况,如果枚举类新增了一个字段,接口返回了这个新字段,客户端未更新的话,必然出现枚举反序列化失败错误。

而枚举作为参数就不一样了,客户端发送的枚举字段在服务端都有(服务端为了兼容性,一般不会删除枚举字段),并不会出现错误。

当然,如果要使用枚举作为接口返回值,也不是没有办法。这就需要自己编写枚举序列化代码,相对来说会麻烦一点。

所以,简单起见,尽量不要使用枚举作为请求和响应参数,而是使用 code 作为请求和响应参数,即枚举仅在项目内部使用。

参考资料
Java枚举什么不好,《阿里巴巴JAVA开发手册》对于枚举规定的考量是什么?

本文作者:ageovb

本文链接:https://www.cnblogs.com/ageovb/p/16794466.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   ageovb  阅读(593)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起