為什么不建議boolean類型變量用isXXX

這篇文章主要講解了“為什么不建議boolean類型變量用isXXX”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“為什么不建議boolean類型變量用isXXX”吧!

成都創(chuàng)新互聯(lián)專注于昌邑網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供昌邑營銷型網(wǎng)站建設(shè),昌邑網(wǎng)站制作、昌邑網(wǎng)頁設(shè)計(jì)、昌邑網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造昌邑網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供昌邑網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

背景:平時(shí)工作中大家經(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;
}

其實(shí)阿里巴巴發(fā)布的java開發(fā)手冊中就寫明了,強(qiáng)制規(guī)定,布爾類型的數(shù)據(jù),無論是boolean還是Boolean都不準(zhǔn)使用isXXX來命名。

為什么不建議boolean類型變量用isXXX

  • 對于非boolean類型的參數(shù),getter和setter方法命名的規(guī)范是以get和set開頭

  • 對于boolean類型的參數(shù),setter方法是以set開頭,但是getter方法命名的規(guī)范是以is開頭

  • 包裝類自動(dòng)生成的getter和setter方法的名稱都是getXXX()和setXXX()

  • 其實(shí)javaBeans規(guī)范中對這些均有相應(yīng)的規(guī)定,基本數(shù)據(jù)類型的屬性,其getter和setter方法是getXXX()和setXXX,但是對于基本數(shù)據(jù)中布爾類型的數(shù)據(jù),又有一套規(guī)定,其getter和setter方法是isXXX()和setXXX。但是包裝類型都是以get開頭

  • 這種方式在某些時(shí)候是可以正常運(yùn)行的,但是在一些rpc框架里面,當(dāng)反向解析讀取到isSuccess()方法的時(shí)候,rpc框架會(huì)“以為”其對應(yīng)的屬性值是success,而實(shí)際上其對應(yīng)的屬性值是isSuccess,導(dǎo)致屬性值獲取不到,從而拋出異常。

總結(jié):

1、boolean類型的屬性值不建議設(shè)置為is開頭,否則會(huì)引起rpc框架的序列化異常。

2、如果強(qiáng)行將IDE自動(dòng)生成的isSuccess()方法修改成getSuccess(),也能獲取到Success屬性值,若兩者并存,則之后通過getSuccess()方法獲取Success屬性值。

工作中使用基本類型的數(shù)據(jù)好還是包裝類好

咱們舉個(gè)例子,一個(gè)計(jì)算盈利的系統(tǒng),其盈利比例有正有負(fù),若使用了基本類型double定義了數(shù)據(jù),當(dāng)RPC調(diào)用時(shí),若出現(xiàn)了問題,本來應(yīng)該返回錯(cuò)誤的,但是由于使用了基本類型,返回了0.0,系統(tǒng)會(huì)認(rèn)為沒有任何問題,今年收支平衡,而不會(huì)發(fā)現(xiàn)其實(shí)是出現(xiàn)了錯(cuò)誤。若使用了包裝數(shù)據(jù)類型Double,當(dāng)RPC調(diào)用失敗時(shí),會(huì)返回null,這樣直接就能看到出現(xiàn)問題了,而不會(huì)因?yàn)槟J(rèn)值的問題影響判斷。

 其實(shí)阿里java開發(fā)手冊中對于這個(gè)也有強(qiáng)制規(guī)定:

為什么不建議boolean類型變量用isXXX

因此,這里建議大家POJO中使用包裝數(shù)據(jù)類型,局部變量使用基本數(shù)據(jù)類型。

感謝各位的閱讀,以上就是“為什么不建議boolean類型變量用isXXX”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對為什么不建議boolean類型變量用isXXX這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

分享文章:為什么不建議boolean類型變量用isXXX
文章來源:http://bm7419.com/article28/jjsdcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)網(wǎng)站制作、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營