为什么 java 里面的布尔类型的字段不建议 is 开头

411次阅读
没有评论

共计 603 个字符,预计需要花费 2 分钟才能阅读完成。

阿里开发手册里面强制规定,布尔类型的数据,无论是 boolean 还是 Boolean 都不准使用 isXXX 来命名,要理解为什么,首先要明确以下几点:

  1. 对于非 boolean 类型的参数,getter 和 setter 方法命名的规范是以 get 和 set 开头

  2. 对于 boolean 类型的参数,setter 方法是以 set 开头,但是 getter 方法命名的规范是以 is 开头

  3. 包装类自动生成的 getter 和 setter 方法的名称都是以 get 和 set 开头

@Data
public class Car {

    private String brand = null;

    private int doors = 0;

    private boolean isUse  = true;
}

比如使用该实体类接受 json 参数,前端传参理论上应该是:

{ "brand" : "Mercedes", "doors" : 5, "isUse" : true }

但是实际使用就会报错,因为在反序列化过程中框架会把 isUse 字段当作 use,这里需要传递如下参数才能接收:

{ "brand" : "Mercedes", "doors" : 5, "use" : true }

但是如果使用包装类,传 isUse 就不会报错。所以,为了避免这种情况的发生,布尔类型的字段名称不要 is 开头。

如下:

@Data
public class Car {

    private String brand = null;

    private int doors = 0;

    private boolean use  = true;
}

提醒:本文发布于175天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2023-09-02发表,共计603字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务