当第一个单词的第二个字母大写时,Getters / setter

时间:2014-10-06 21:11:08

标签: java naming-conventions getter-setter camelcasing

我们应该从以下名称中得到什么? :mGage Program

如果我来这个它将是mGageProgram并且如果我生成(在eclipse中)getter和setter我会得到以下内容:

public String getmGageProgram() {
    return mGageProgram;
}

public void setmGageProgram(String mGageProgram) {
    this.mGageProgram = mGageProgram;
}

对我来说,这似乎并不正确,因为我期待getMGageProgram()setMGageProgram(value)

这些getter / setter名字是否正常?

3 个答案:

答案 0 :(得分:3)

根据 8.8: Capitalization of inferred names of the JavaBeans API specification 从IDE 生成的名称是正确的

答案 1 :(得分:2)

它们100%正确:)但程序员的约定不同,对我来说,它的方法名称在camel大小写而不是变量。至于语法正确:)

答案 2 :(得分:1)

我想提供更多有关规范说明的内容。它指定了我们如何从获取器和/或设置器的名称获取属性名称。在这种情况下,有趣的报价是:

…为了支持偶尔使用所有大写名称,我们检查是否 名称的前两个字符都是大写,如果是的话 别管它。

来自 8.8:推断名称的大写字母。

给出的一个示例是URL(如getURLsetURL)变成(或停留在)URL(不是uRL)上。

因此,您和我所期望的方法名称getMGageProgramsetMGageProgram会隐含一个名为MGageProgram且属性为大写M的属性。由于我们需要mGageProgram,因此我们需要在getter和setter的名称中使用小写的m

因此,按照我阅读的规则,实际上可以让您在任何获取器或设置器名称中的getset之后使用小写字母。这让我感到惊讶。当然,在不需要的情况下,我们不希望利用此选项。

链接: JavaBeans Spec download page