我们应该从以下名称中期望什么?:mGage Program
如果我camelCase,它将是mGageProgram,如果我生成(在eclipse中)getter和setter,我将得到以下内容:
public String getmGageProgram() {
return mGageProgram;
}
public void setmGageProgram(String mGageProgram) {
this.mGageProgram = mGageProgram;
}在我看来,这似乎不对,因为我期待的是getMGageProgram()和setMGageProgram(value)。
这些getter/setter的名字还好吗?
发布于 2014-10-06 21:14:52
根据 8.8: Capitalization of inferred names of the JavaBeans API specification,从IDE 生成的名称是正确的。
发布于 2014-10-06 21:14:04
它们是100%正确的:)但是程序员之间的约定是不同的,对我来说,它的方法名是camel大小写而不是变量。至于语法,它是正确的:)
发布于 2020-01-30 18:57:32
我想提供一些更深入的规格说明。它指定了如何从getter和/或setter的名称获得属性名。在这方面有趣的引语是:
…为了支持偶尔使用所有大写名称,我们检查名称的前两个字符是否都是大写字母,如果是的话,不要使用大写名称。
它来自8.8节:推断名称的大写。
给出的一个例子是URL (如getURL或setURL)变成(或停留) URL (而不是uRL)。
因此,您和我所期望的方法名称,getMGageProgram和setMGageProgram,将意味着一个名为MGageProgram的属性,其大写为M。因为我们想要mGageProgram,所以我们需要在getter和setter的名称中使用小写m。
因此,我所读的规则确实允许您在get或set之后以任何getter或setter的名称使用小写字母。这对我来说是个奇怪的惊喜。当然,在没有必要的情况下,这不是我们想要利用的选项。
链接: JavaBeans规范下载页面
https://stackoverflow.com/questions/26224938
复制相似问题