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


共计 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;
}
【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年

给TA打赏
共{{data.count}}人
人已打赏
云原生

Spring 实例化 Bean 对象的基本流程

2023-9-15 14:43:40

云原生

Nginx 配置 Basic 认证

2023-9-15 16:53:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索