阿里強制 boolean 類型不能用 is 開頭?
背景
平時工作中大家經(jīng)常使用到boolean以及Boolean類型的數(shù)據(jù),前者是基本數(shù)據(jù)類型,后者是包裝類,為什么不推薦使用isXXX來命名呢?到底是用基本類型的數(shù)據(jù)好呢還是用包裝類好呢?
例子
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;
????}????
其實阿里巴巴發(fā)布的java開發(fā)手冊中就寫明了,強制規(guī)定,布爾類型的數(shù)據(jù),無論是boolean還是Boolean都不準使用isXXX來命名

getXXX()和setXXX()總結
1、boolean類型的屬性值不建議設置為is開頭,否則會引起rpc框架的序列化異常。
2、如果強行將IDE自動生成的isSuccess()方法修改成getSuccess(),也能獲取到Success屬性值,若兩者并存,則之后通過getSuccess()方法獲取Success屬性值。
若使用了包裝數(shù)據(jù)類型Double,當RPC調用失敗時,會返回null,這樣直接就能看到出現(xiàn)問題了,而不會因為默認值的問題影響判斷。
其實阿里java開發(fā)手冊中對于這個也有強制規(guī)定:

因此,這里建議大家POJO中使用包裝數(shù)據(jù)類型,局部變量使用基本數(shù)據(jù)類型。
加小編微信,回復 40 白嫖40套 java/spring/kafka/redis/netty 教程/代碼/視頻 等
掃二維碼,加我微信,回復:40
?注意,不要亂回復? 沒錯,不是機器人 記得一定要等待,等待才有好東西
評論
圖片
表情
