为什么 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;
}

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

Tips:清朝云网络工作室

阅读剩余
THE END