共计 603 个字符,预计需要花费 2 分钟才能阅读完成。
阿里开发手册里面强制规定,布尔类型的数据,无论是 boolean 还是 Boolean 都不准使用 isXXX 来命名,要理解为什么,首先要明确以下几点:
-
对于非 boolean 类型的参数,getter 和 setter 方法命名的规范是以 get 和 set 开头
-
对于 boolean 类型的参数,setter 方法是以 set 开头,但是 getter 方法命名的规范是以 is 开头
-
包装类自动生成的 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;
}