第十二篇:随手记一下javaBean的setter,getter方法的命名问题

今天测试新写的一个系统表的完整Ibatis配置和调用,因为经验少,到处撞墙、、、其他的坑爹问题就不提了

       测试sqlMapClient.queryForList("...",param)这个方法,查询正常有3条记录,但是结果却是[{},{},{}],很明显里面的3个实体对象全是空的,就是说查出来的结果没有set进去。大多数情况遇到的实体类的属性名都是name,passWord这样的,所以setter、getter方法自然就叫getName(),setName(),这次我的实体类属性是这样的:

private String sysId;
private String sysName;
private String sysAlias;
private String paramValue;
private Date createTime;

写的 setter、getter方法名字叫
public String getsysId(){
return sysId;
}
public void setsysId(String sysId){
this.sysId = sysId;
}

        我在手写这两个方法的时候心里老感觉这名字怪怪的,看起来很不舒服,因为之前一直用驼峰命名法看习惯了。只知道是set、get加上属性名就OK了。于是猜测是不是取名问题。既然java中确实有setter、getter方法这种叫法,那也该有个规则。网上查了下遇到这个问题的帖子挺少。要么我做的少了,要么大家都是用代码生成器吧。

       这个碰壁很值,不废话,下面给出命名规则
 

        一般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。

4、如果属性名以"is"开头,则getter方法会省掉get,set方法会去掉is。例如属性名为isOK,方法是isOK/setOK。

需要注意的是有些开发工具自动生成的getter/setter方法,并没有考虑到上面所说的特例情况,会导致bug的产生。
        结论来了:在定义JavaBean的属性名时
1、尽量避免属性名的头两个字母中任意一个为大写
2、尽量避免属性名以"is"开头。

转载于:https://www.cnblogs.com/yb38156/p/9821940.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值