1 / 8
文档名称:

java培训JavaBean属性命名规范问题分析.docx

格式:docx   大小:238KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java培训JavaBean属性命名规范问题分析.docx

上传人:ipod0b 2017/8/2 文件大小:238 KB

下载得到文件列表

java培训JavaBean属性命名规范问题分析.docx

相关文档

文档介绍

文档介绍:Java Bean属性命名规范问题分析
Eclipse根据这种方式生成getter访问器和setter设值器, 由于属性名isShowCode的is没有去掉, 以致java bean类违背了java bean 的命名规范。
问题由来:
最近在一个java bean类中定义了一个boolean类型的变量:
//boolean属性:是否显示 
private boolean isShowCode ;   
      
//使用Eclipse自动生成getter/setter方法如下:  
public boolean isShowCode() {  
   return isShowCode;  
}  
public void setShowCode(boolean isShowCode) {  
     = isShowCode;  
} 
spring在给java bean 设置值的时候, 抛出异常:
Caused by: :   
Invalid property 'isShowCode' of bean class []:   
Bean property 'isShowCode' is not writable or has an invalid setter method.   
Did you mean 'showCode'?  
.(:1064)  
代码运行环境: jdk + eclipse + spring , 本文下面的代码都在该环境下测试。
原因跟踪分析:跟踪Spring源码, 可以看到下面这段代码:
private CachedIntrospectionResults(Class beanClass,   
    boolean cacheFullMetadata) throws BeansException {  
    ... ...  
     = new ExtendedBeanInfo((beanClass));  
    ... ...  
} 
(beanClass)返回的时候,获取到的java bean 信息中的isShowCode属性的名称已经被改成了"showCode"。
 
到这里可以确定问题不是出在spring代码中, 网上有不少帖子说是spring的处理规则导致了这个问题,这里是不是可以否定这种看法?
问题跟踪到这,。尝试继续跟踪JDK源码,可能由于我的JDK的jar包和源码不匹配的原因, eclipse总是监控不到中间变量。也就没有再跟踪进去了。可以知道的是,javabean中的isShowCode 属性和对应的g