今天在做毕设时碰到了一个小bug。ssh项目中实例对象里面有一个属性获取不到值。找了半天终于找到原因。
之前的错误代码:private String pPic; ,乍看之下没有太大问题但是用IDE自带getter和setter生成时却出现了
这种形式 的getter和setter并不符合框架对getter和setter的要求,框架识别的是get或set后属性名要大写的属性,这种第一个字母是小写的识别不了,从而致使bug的产生。
自动生成时会有一些特列:
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。
总结:在自动生成代码时一定要小心这些特例,以免犯错。
原文:https://www.cnblogs.com/icxl/p/12826619.html