java類中的布爾(boolean&Boolean)類型字段要注意get方法和字段的命名


idea會自動生成get/set方法的,
對於布爾類型,要非常注意生成的get方法,到底是is開頭還是get開頭.

先說結論:
1.Boolean類型,生成的get方法是get開頭的(建議使用這個).
2.boolean類型,生成的get方法是is開頭的(用這個最好重寫getXxx()格式的方法).

3、字段不要以isxxx命名,在springsimpleformController中獲取數據時候不能反射到該屬性,存數據時候也會遇到問題。具體問題以后遇到再補充。

以下這個例子,可以驗證這個區別:

class TestClass{

    private Boolean daXie;//布爾的包裝類
    private boolean xiaoXie;//基本類型-布爾
    //下面是idea自動生成的get/set方法

    //布爾包裝類Boolean的get方法,是正常的get開頭的
    public Boolean getDaXie() {
       return daXie;
    }

    public void setDaXie(Boolean daXie) {
        this.daXie = daXie;
    }

    //請注意這里,基本類型boolean下自動生成的get方法,是is開頭的
    public boolean isXiaoXie() {
        return xiaoXie;
    }

    public void setXiaoXie(boolean xiaoXie) {
        this.xiaoXie = xiaoXie;
    }
}

從上面的例子可以看出,小寫的boolean基本類型作為類的屬性時,自動生成的get方法,是is開頭的,這樣在平時的使用中是無傷大雅的,但考慮到如果這個對象涉及到反射,反射一般會默認調取對象的get方法,對於這個is的情況,是走不通的.

總結:
用到布爾值的屬性時,最好統一使用大寫的包裝類Boolean.
如果用小寫的booean基本類型,最好重寫get方法,保證是getXxxx的格式即可.

擴展:
一般用到反射的地方有:
1.泛化調用(具體了解可參考dubbo框架)
2.BeanUtils.copyPropertits(a,b);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM