问题描述
- 请问生成getter时命名依据是什么呀?
-
如图:
最早认为所有的getter生成都是把首字母大写,前面加上get前缀即可。
但是后来发现不是这么回事,详细观察一下吓一跳,不但boolean类型的会变成is前缀,而且如果第二个字母大写,第一个字母就不变大写了!
这样就很迷惑,究竟生成getter的依据是什么呢,有没有一个通则啊?
因为我想写一个东西,可能会用到EL表达式那样的需求,通过给定的属性名寻找其get方法,如果无法确定通则,做出来的东西就不能保证质量啦
解决方案
getter方法由JavaBean规范决定,是被定死的。规则其实也就是三条。
如果私有属性为boolean值,则写成is+Xxx(注意,属性名称首字母自动大写)
如果私有属性为其他类型,则设置器写为set+Xxx获取器写为get+Xxx(同样注意字母的大小写。)
如果私有属性的第2个字线大写,则无论是is,还是set或get,后面的属性名字均原样照抄(不改变大小写顺序)
解决方案二:
如果你的ide是eclipse,请在参数页中java>code template 中添加prefix和suffix,之后再让eclipse生成getter setter时它就知道你的s 只是个前缀,生成方法名时会忽略它。
解决方案三:
个人理解:命名只是个规范问题,一般的变量命名是小写,如果是几个单词拼接起来的,从第二个word开始每个word的开头第一个字母大写。get/set方法就是get+变量名,这时候变量名的第一个字母大写。
解决方案四:
现在不流行在java中使用类型前缀,至少eclipse sun 自己的源码都是如此,现在工具能力强大都会自动验证类型,没多少人还用记事本写代码的。
时间: 2024-10-28 11:09:12