dubbo布尔值序列化后没有is问题详解编程语言

dubbo布尔值序列化问题

今天遇到一个问题,dubbo接口里的某个response的bool字段,字段名里含有is,序列化后的值里is居然自动消失了。

这里随便举个例子:

public class User implements Serializable{
    
    private boolean isPayed; 
} 

调用该dubbo接口之后,序列化出来的User中,本来的isPayed 变成了 payed

因为dubbo用的是Gson解析,所以尝试加上注解 @SerializedName("isPayed"),但是结果没变化。

后来发现,字段名貌似是从get、set方法名获取的,而这里默认生成的getter方法是 isPayed,setter是setPayed,而不是 getIsPayedsetIsPayed

解决方式

  1. 去掉is
    阿里巴巴编程规范要求bool命名不要用is,因为可能会在某些场景出问题。之所以这么做也是有迹可循的,也有很多博客展示了不同序列化工具(如jackson、fastjson)对于bool字段序列化方式的不同

  2. 修改get、set方法
    分别修改为:getIsPayedsetIsPayed

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19349.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论