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

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...