Java Bean 属性命名规范问题小结

问题引入:

//boolean属性:是否显示
private boolean isShowCode ; 
	
//使用Eclipse自动生成getter/setter方法如下:
public boolean isShowCode() {
   return isShowCode;
}
public void setShowCode(boolean isShowCode) {
    this.isShowCode = isShowCode;
}

spring在给java bean 设置值的时候, 抛出异常: 

Caused by: org.springframework.beans.NotWritablePropertyException: 
Invalid property 'isShowCode' of bean class [com.codemouse.beans.Country]: 
Bean property 'isShowCode' is not writable or has an invalid setter method. 
Did you mean 'showCode'?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1064)

获取到的java bean 信息中的isShowCode属性的名称已经被改成了"showCode"。

 由于属性名isShowCode的is没有去掉, 以致java bean类违背了java bean 的命名规范。

JavaBean 的属性名和getter/setter存取方法规则小结:

1. 对于常规属性 <propertyName> , 属性名称的第一个单词小写且字母个数大于1,第二个单词首字母大写 。对应的getter/setter方法名为:get /set + <PropertyName>(), 即属性名称的第一个单词的首字母改成大写, 前面再加上"get"或"set"前缀。

 2. 对于布尔类型 <propertyName> , 可以按常规属性的规则编写getter/setter方法外, getter方法可以使用 is + <PropertyName>()的形式来代替。  

3. 对于非常规属性<pName>, 属性名称的第一个单词小写且字母个数等于1,第二个单词首字母大写

4.注意的是,javabean:boolean和Boolean类型的getter方法名是有区别的:

              对于boolean类型,生成的getter方法名都是isProperty(getProperty仍然可用)

              对于Boolean,只能使用getProperty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值