1. 程式人生 > 實用技巧 >java類中的布林(boolean&Boolean)型別欄位要注意get方法和欄位的命名

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