阿里开发手册为什么不让定义isXxx变量?

开发手册原文:

【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。
反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。

很容易理解,就是如果用isXxx变量 ,会引起某些框架序列化错误,会引发出潜在的异常。

以下是idea生成的一段get/set代码

public class ShopInBasicInfoDTO {

    private String name;
    private boolean isDelete;
    private boolean delete;

    public String getName() {
        return name;
    }

    public boolean isDelete() {
        return isDelete;
    }

    public boolean isDelete() {
        return delete;
    }
}

 变量isDelete 生成的get方法为 isDelete()

变量deleted 生成的get方法为 isDelete()

isDelete和delete生成的方法 都是isDelete()

然后有些框架就会去通过delete变量去找isDelete,然后就找不到了

再看变量 delete,因为都是 boolean 变量,所有生成的逻辑和 isDelete一样,

根据上述规范,它不会产生找不着值的情况,这也是为什么不建议使用 isXxx 的命名形式。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值