平時工做中你們常常使用到boolean以及Boolean類型的數據,前者是基本數據類型,後者是包裝類,爲何不推薦使用isXXX來命名呢?究竟是用基本類型的數據好呢仍是用包裝類好呢?Java面試寶典PDF完整版java
1.其餘非boolean類型 private String isHot; public String getIsHot() { return isHot; } 2.boolean類型 private boolean isHot; public boolean isHot() { return isHot; } 3.包裝類型 private Boolean isHot; public Boolean getHot() { return isHot; } 4.不以is開頭 private boolean hot; public boolean isHot() { return hot; } 5.包裝類型 private Boolean hot; public Boolean getHot() { return hot; }
其實阿里巴巴發佈的java開發手冊中就寫明瞭,強制規定,布爾類型的數據,不管是boolean仍是Boolean都不許使用isXXX來命名面試
對於非boolean類型的參數,getter和setter方法命名的規範是以get和set開頭框架
對於boolean類型的參數,setter方法是以set開頭,可是getter方法命名的規範是以is開頭ide
其實javaBeans規範中對這些均有相應的規定,基本數據類型的屬性,其getter和setter方法是getXXX()和setXXX,可是對於基本數據中布爾類型的數據,又有一套規定,其getter和setter方法是isXXX()和setXXX。可是包裝類型都是以get開頭3d
一、boolean類型的屬性值不建議設置爲is開頭,不然會引發rpc框架的序列化異常。code
二、若是強行將IDE自動生成的isSuccess()方法修改爲getSuccess(),也能獲取到Success屬性值,若二者並存,則以後經過getSuccess()方法獲取Success屬性值。blog
我們舉個例子,一個計算盈利的系統,其盈利比例有正有負,若使用了基本類型bouble定義了數據,當RPC調用時,若出現了問題,原本應該返回錯誤的,可是因爲使用了基本類型,返回了0.0,系統會認爲沒有任何問題,今年收支平衡,而不會發現實際上是出現了錯誤。若使用了包裝數據類型Double,當RPC調用失敗時,會返回null,這樣直接就能看到出現問題了,而不會由於默認值的問題影響判斷。token
其實阿里java開發手冊中對於這個也有強制規定:開發
所以,這裏建議你們POJO中使用包裝數據類型,局部變量使用基本數據類型。Java面試寶典PDF完整版rpc