<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>

          為什么阿里強(qiáng)制 boolean 類型變量不能使用 is 開(kāi)頭?

          共 1865字,需瀏覽 4分鐘

           ·

          2021-10-18 19:27

          今日推薦
          Java 8 一行代碼解決了空指針問(wèn)題,太厲害了...
          List中remove()方法的陷阱,被坑慘了!
          25000 字詳解 23 種設(shè)計(jì)模式,原來(lái)可以這么簡(jiǎn)單!
          最牛逼的 Java 日志框架,性能無(wú)敵,橫掃所有對(duì)手.....
          這玩意比ThreadLocal叼多了,嚇得我趕緊分享出來(lái)


          來(lái)源:blog.csdn.net/belongtocode/article/details/100635246

          背景

          平時(shí)工作中大家經(jīng)常使用到boolean以及Boolean類型的數(shù)據(jù),前者是基本數(shù)據(jù)類型,后者是包裝類,為什么不推薦使用isXXX來(lái)命名呢?到底是用基本類型的數(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開(kāi)頭

          ??private?boolean?hot;
          ????public?boolean?isHot()?{
          ????????return?hot;
          ????}

          5.包裝類型

          ?private?Boolean?hot;
          ????public?Boolean?getHot()?{
          ????????return?hot;
          ????}????

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

          • 對(duì)于非boolean類型的參數(shù),getter和setter方法命名的規(guī)范是以get和set開(kāi)頭
          • 對(duì)于boolean類型的參數(shù),setter方法是以set開(kāi)頭,但是getter方法命名的規(guī)范是以is開(kāi)頭
          • 包裝類自動(dòng)生成的getter和setter方法的名稱都是getXXX()setXXX()

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

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

          總結(jié)

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

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

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

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

          若使用了包裝數(shù)據(jù)類型Double,當(dāng)RPC調(diào)用失敗時(shí),會(huì)返回null,這樣直接就能看到出現(xiàn)問(wèn)題了,而不會(huì)因?yàn)槟J(rèn)值的問(wèn)題影響判斷。

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

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

          推薦文章


          1、一款高顏值的 SpringBoot+JPA 博客項(xiàng)目

          2、超優(yōu) Vue+Element+Spring 中后端解決方案

          3、推薦幾個(gè)支付項(xiàng)目!

          4、推薦一個(gè) Java 企業(yè)信息化系統(tǒng)

          5、一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問(wèn)答/社交網(wǎng)絡(luò)/博客)

          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  亚洲韩日在线 | 国产av漫画 | 欧美高清一区 | 国产女人喷高潮视频免费 | 99热都是精品 |