<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么阿里強制 boolean 類型變量不能使用 is 開頭

          共 2629字,需瀏覽 6分鐘

           ·

          2021-10-20 07:23

          點擊關注公眾號,回復“2T”獲取2TB學習資源!
          互聯(lián)網(wǎng)架構師后臺回復 2T 有特別禮包
          上一篇:深夜看了張一鳴的微博,讓我越想越后怕

          來源:blog.csdn.net/belongtocode/article/details/100635246

          背景

          平時工作中大家經(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來命名



          1.其實javaBeans規(guī)范中對這些均有相應的規(guī)定,基本數(shù)據(jù)類型的屬性,其getter和setter方法是getXXX()setXXX,但是對于基本數(shù)據(jù)中布爾類型的數(shù)據(jù),又有一套規(guī)定,其getter和setter方法是isXXX()setXXX。但是包裝類型都是以get開頭
          2.這種方式在某些時候是可以正常運行的,但是在一些rpc框架里面,當反向解析讀取到isSuccess()方法的時候,rpc框架會“以為”其對應的屬性值是success,而實際上其對應的屬性值是isSuccess,導致屬性值獲取不到,從而拋出異常。

          總結

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

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

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

          咱們舉個例子,一個計算盈利的系統(tǒng),其盈利比例有正有負,若使用了基本類型bouble定義了數(shù)據(jù),當RPC調用時,若出現(xiàn)了問題,本來應該返回錯誤的,但是由于使用了基本類型,返回了0.0,系統(tǒng)會認為沒有任何問題,今年收支平衡,而不會發(fā)現(xiàn)其實是出現(xiàn)了錯誤。

          若使用了包裝數(shù)據(jù)類型Double,當RPC調用失敗時,會返回null,這樣直接就能看到出現(xiàn)問題了,而不會因為默認值的問題影響判斷。

          其實阿里java開發(fā)手冊中對于這個也有強制規(guī)定:

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

          感謝您的閱讀,也歡迎您發(fā)表關于這篇文章的任何建議,關注我,技術不迷茫!小編到你上高速。

              · END ·
          最后,關注公眾號互聯(lián)網(wǎng)架構師,在后臺回復:2T,可以獲取我整理的 Java 系列面試題和答案,非常齊全


          正文結束


          推薦閱讀 ↓↓↓

          1.不認命,從10年流水線工人,到谷歌上班的程序媛,一位湖南妹子的勵志故事

          2.如何才能成為優(yōu)秀的架構師?

          3.從零開始搭建創(chuàng)業(yè)公司后臺技術棧

          4.程序員一般可以從什么平臺接私活?

          5.37歲程序員被裁,120天沒找到工作,無奈去小公司,結果懵了...

          6.IntelliJ IDEA 2019.3 首個最新訪問版本發(fā)布,新特性搶先看

          7.這封“領導痛批95后下屬”的郵件,句句扎心!

          8.15張圖看懂瞎忙和高效的區(qū)別!

          一個人學習、工作很迷茫?


          點擊「閱讀原文」加入我們的小圈子!

          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品你懂的在线观看 | 一级黄色片网 | 玖玖精品在线播放 | 91人妻在线淋 | 日本草逼网站 |