java培训-java_bean属性命名规范问题分析

java培训-java_bean属性命名规范问题分析

ID:32865329

大小:238.12 KB

页数:8页

时间:2019-02-16

java培训-java_bean属性命名规范问题分析_第1页
java培训-java_bean属性命名规范问题分析_第2页
java培训-java_bean属性命名规范问题分析_第3页
java培训-java_bean属性命名规范问题分析_第4页
java培训-java_bean属性命名规范问题分析_第5页
资源描述:

《java培训-java_bean属性命名规范问题分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、JavaBean属性命名规范问题分析Eclipse根据这种方式生成getter访问器和setter设值器,由于属性名isShowCode的is没有去掉,以致javabean类违背了javabean的命名规范。问题由来:最近在一个javabean类中定义了一个boolean类型的变量:1.//boolean属性:是否显示 2.private boolean isShowCode ;  3.     4.//使用Eclipse自动生成getter/setter方法如下: 5.public boolean isShowCode() { 6.   return isShowCode; 7.} 8.

2、public void setShowCode(boolean isShowCode) { 9.    this.isShowCode = isShowCode; 10.} spring在给javabean设置值的时候,抛出异常:1.Caused by: org.springframework.beans.NotWritablePropertyException:  2.Invalid property 'isShowCode' of bean class [com.codemouse.beans.Country]:  3.Bean property 'isShowCode' is not

3、 writable or has an invalid setter method.  4.Did you mean 'showCode'? 5.at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1064) 代码运行环境:jdk1.6+eclipse3.2+spring3.1,本文下面的代码都在该环境下测试。原因跟踪分析:跟踪Spring源码,可以看到下面这段代码:1.private CachedIntrospectionResults(Class beanClass,  2

4、.    boolean cacheFullMetadata) throws BeansException { 3.    ... ... 4.    this.beanInfo = new ExtendedBeanInfo(Introspector.getBeanInfo(beanClass)); 5.    ... ... 1.} 方法Introspector.getBeanInfo(beanClass)返回的时候,获取到的javabean信息中的isShowCode属性的名称已经被改成了"showCode"。 到这里可以确定问题不是出在spring代码中,网上有不少帖子说是sprin

5、g的处理规则导致了这个问题,这里是不是可以否定这种看法?问题跟踪到这,也即跟踪到了java.beans包。尝试继续跟踪JDK源码,可能由于我的JDK的jar包和源码不匹配的原因,eclipse总是监控不到中间变量。也就没有再跟踪进去了。可以知道的是,javabean中的isShowCode属性和对应的getter/setter方法应该是没有遵循javabean规范。Eclipse自动生成的getter/setter方法看来也是存在一些问题的。Eclipse自动生成boolean类型属性的方法是不是有点奇怪呢?属性isShowCode的getter访问器是isShowCode()而不是get

6、IsShowCode(),setter设值器是setShowCode()而不是setIsShowCode()。原来在javabean规范关于中提到,boolean属性的getter访问器可以使用下面这种模式publicbooleanis(){...};来代替publicbooleanget(){...};Javabean规范(下载链接:http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/)在8.3章节"De

7、signPatternsforProperties"中的描述:Eclipse根据这种方式生成getter访问器和setter设值器,由于属性名isShowCode的is没有去掉,以致javabean类违背了javabean的命名规范。JavaBean的属性名和getter/setter存取方法规则小结:1.对于常规属性,属性名称的第一个单词小写且字母个数大于1,第二个单词首字母大写。对应的ge

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。