在java web开发过程中,遇到的各类问题总结,包括java语言,spring,spring mvc,ibatis框架等使用过程中遇到的一些常见的,或者不常见的问题。分条列举,附有问题详情以及解决方案。
1.java定义的boolen数据类型的get,set函数(定义为isEditable):
1 | private boolean isEditable;//是否可以编辑 |
现象:IDEA自动生成的boolean类型与我们的预期有一定的差异,属性isEditable的getter访问器是isEditable(),
而不是getIsEditable();setter访问器是setEditable(),而不是setIsEditable()。
原因:由于属性名isEditable的is没有去掉, 以致java bean类违背了java bean 的命名规范。JavaBean 的属性名和getter/setter存取方法规则小结:
- 对于常规属性propertyName ,
属性名称的第一个单词小写且字母个数大于1,第二个单词首字母大写。对应的getter/setter方法名为:get/set + PropertyName(),
即属性名称的第一个单词的首字母改成大写,前面再加上”get”或”set”前缀。- 对于布尔类型propertyName,可以按常规属性的规则编写getter/setter方法外, getter方法可以使用 is + PropertyName()的形式来代替。
- 对于非常规属性pName,属性名称的第一个单词小写且字母个数等于1,第二个单词首字母大写,分一下三种情况:
1.对应的getter/setter方法名可以为:get/set + PName(), 即第一个单词的首字母为改为大写,前面再加上”get”或”set”前缀。
2.对应的getter/setter方法名也可以为:get/set + pName(), 即属性名称不变,第一个单词的首字母任然为小写,前面再加上”get”或”
set”前缀。
3.对于非常规属性PName, 属性名称的前两个字母都是大写 。即连续两个大写字母开头的属性名。对应的getter/setter方法名为:
get/set+PName()
4.对于非常规属性
的错误。
总结:
1. javabean属性命名尽量使用常规的驼峰式命名规则
2. 属性名第一个单词尽量避免使用一个字母:如eBook, eMail
3. boolean属性名避免使用 “is” 开头的名称
**4. 随着jdk, eclipse, spring 等软件版本的不断提高, 底版本的出现的问题可能在高版本中解决了, 低版本原来正常的代码可能在高版本环境下不再支持。
**