java属性名_JavaBean 属性命名规范特例

上次周会瑶红说过如果JavaBean的属性值第二个字母为大写,有的Eclipse会出问题,在叶渡的指导下,在这个问题上又研究了一下下,总结如下:

一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。

但是,还有一些特殊情况:

1、如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。

2、如果前两个字母是大写(一般的专有名词和缩略词都会大写),也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为URL,方法是getURL/setURL。

3、如果首字母大写,也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为Name,方法是getName/setName,这种是最糟糕的情况,会找不到属性出错,因为默认的属性名是name。

所以在JavaBean命名时应该注意符合以上命名规范。

需要注意的是有些开发工具的自动生成的getter/setter方法,并没有考虑到上面所说的特例情况,导致bug的产生,比如Eclipse3.4版本,Eclipse3.5较3.4智能些,避免了一些问题。以下是我在Eclipse3.5和Eclipse3.4分别做的实验:

在User的实体类中,设了两个变量,一个是userName,另一个是uName,然后用Eclipse的自动生成的get和set方法(source–>Generate getter andsetter),在Eclipse3.5中生成的是下图所示的正确的方法,正常的方法是将变量名的首字母变成大写,而如果变量名的第一个字母是小写,第二个字母是大写,则第一个字母为小写不变。

7a420da1e0bc32de46106421.jpg

然后在spring配置文件中对User类进行bean注入

e8eb3526a74c5e428b82a12d.jpg

接下来运行一个测试的方法,将两个变量输出

155af416aa639f3d5611a0c38da964b8.png

以下是输出结果。

3e02e2732c0b97825e072aaff6c1a4cb.png

而在Eclipse3.4中,这样的命名方法就会出问题,看下图红色标注的地方,Eclipse3.4只是简单的将第一个字母变成大写。

0f4dfcfba057eb31024f5636.jpg

这样在同样的配置文件下,运行测试方法就会出问题,说uName这个属性找不到,因为已经变成了UName,所以在创建bean的时候就找不到uName这个变量了。

f80fce7e845ca48274af7b7f8bac0141.png

3c645f2a82fc1d7b4f90214b15cdda4a.png

前两个字母大写的情况:

cab9e59a0dd0704c4ee21e3dee15faaf.png

输出结果:

919d2ae582463556b619600e4227dcb0.png

首字母大写的情况:

b5553d82d2ca0ac5f703a600.jpg

a5386fc604a6178b382e0f30cbdb7872.png

这时会出现问题:

6637130ce9e38023ae2d250100575eaf.png

希望大家在对属性进行命名的时候注意一下特殊情况,可以避免相关问题的产生。

自己给自己做个规范,

1.类命名的时候第二个字母不大写。

2.变量命名的时候前两个字母都小写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值