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后的名字相同

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