一般情况下,我们可以有以下四种方式来定义一个布尔类型的成员变量:
boolean success; boolean isSuccess; Boolean success; //推荐写法 Boolean isSuccess;
success 还是 isSuccess
在阿里巴巴Java开发手册中关于这一点,有过一个『强制性』规定:
public class Model1 { boolean success; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } }
public class Model2 { boolean isSuccess; public boolean isSuccess() {//如果严格按照规范定义的话,getter方法应该叫isIsSuccess。但是很多IDE都会默认生成为isSuccess。 return isSuccess; } public void setSuccess(boolean success) { isSuccess = success; } }
public class Model3 { Boolean success; //推荐写法 public Boolean getSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } }
public class Model4 { Boolean isSuccess; public Boolean getSuccess() { return isSuccess; } public void setSuccess(Boolean success) { isSuccess = success; } }
以上代码的setter/getter是使用Intellij IDEA自动生成的,仔细观察以上代码,会发现以下规律:
- 基本类型自动生成的getter和setter方法,名称都是
isXXX()
和setXXX()
形式的。 - 包装类型自动生成的getter和setter方法,名称都是
getXXX()
和setXXX()
形式的。
所以,在定义POJO中的布尔类型的变量时,不要使用isSuccess这种形式,而要直接使用success!
Boolean还是boolean
在阿里巴巴Java开发手册中,对于POJO中如何选择变量的类型也有着一些规定:
所以,尽量使用包装类型。
总结
本文围绕布尔类型的变量定义的类型和命名展开了介绍,最终我们可以得出结论,在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的。
阿里巴巴Java开发手册:https://caoye.lanzous.com/iby7opg
参考文章来源:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/success-isSuccess-and-bollean-Bollean