一般情況下,我們可以有以下四種方式來定義一個布爾類型的成員變量:
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