JavaBean屬性的命名規範

布爾類型屬性的命名

項目中,在一個JavaBean中遇到了一個布爾類型屬性值命名的問題,

// 基本數據類型
private boolean isTest;
    public boolean isTest() {
        return isTest;
    }

    public void setTest(boolean test) {
        isTest = test;
    }
    
    // 包裝類
    private Boolean isDVP;

    public Boolean getDVP() {
        return isDVP;
    }

    public void setDVP(Boolean DVP) {
        isDVP = DVP;
    }

從上面我們可以看到,當我們給JavaBean的布爾類型的屬性變量命名爲isXXX時,利用idea給我們生成的getter和setter方法它們並不是屬性名再加上set或者get。而我們的框架在序列化時,一般都是直接利用getter方法的方法名去掉get(boolean類型是去掉is)後的名字去匹配我們傳入的變量名。如果這時,我們傳入的變量名仍然是isXXX(上例的話是isTest),那麼框架在序列化時,就不能配到值。如下所示:

<bean id="student" class="com.smart.domain.Student" lazy-init="true">
		<!-- 以下的屬性值通過com.smart.domain.Student中的setter方法注入,其中<property>標籤中的
		     name屬性的名字要與Student類中的setter方法去掉set後的名字相同,如setXXX(),則,name="XXX"。
		     這裏的name並不是和我們Student類中相應的屬性變量名相同 -->
		
		<property name="isTest">    // 在idea中此處的"isTest"變量會飄紅,正確的寫法應該是 name="test"
			<value>true</value>
		</property>
		<property name="Aaaa">
			<value>1111</value>
		</property>
		<property name="isDVP">  // 這裏也會飄紅。
			<value>dvp</value>
		</property>
	</bean>

所以一般不推薦給布爾類型變量命名爲isXXX。

JavaBean屬性的命名規範

  • 對於常規屬性 <propertyName> ,如,userName, 屬性名稱的第一個單詞小寫且字母個數大於1,第二個單詞首字母大寫 。對應的getter/setter方法名爲:get /set + <PropertyName>(), 即屬性名稱的第一個單詞的首字母改成大寫, 前面再加上"get"或"set"前綴。如,setUserName()。
  • 對於布爾類型 <propertyName> , 可以按常規屬性的規則編寫getter/setter方法外, getter方法可以使用 is + <PropertyName>()的形式來代替。這裏不推薦用isXXX給布爾類型變量命名,而且最好使用封裝類的布爾類型而不是基本類型。
  • 對於非常規屬性<pName>, 屬性名稱的第一個單詞小寫且字母個數等於1,第二個單詞首字母大寫 。對應的getter/setter方法名可以爲:get/set+ <pName>(), 即屬性名稱不變,第一個單詞的首字母任然爲小寫,前面再加上"get"或"set"前綴。這種方式可以正常運行。
  • 對於非常規屬性<PName>, 屬性名稱的前兩個字母都是大寫 。即連續兩個大寫字母開頭的屬性名。 對應的getter/setter方法名爲: get/set + <PName>(), 即屬性名稱不變,前面再加上"get"或"set"前綴。
總結

1、JavaBean的屬性命名規則儘量使用常規的駝峯命名規則。
2、屬性名第一個單詞儘量避免使用一個字母:如eBook, eMail。
3、布爾類型變量屬性名避免使用 “is” 開頭的名稱。
4、在框架中一般都是利用JavaBean的setter和gette方法對屬性進行處理,所以我們給JavaBean中的屬性傳值時,一定要注意傳入值的變量名一定要和setter和getter方法名去掉set和get後的名字相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章