微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐