我们应该从以下名称中得到什么? :mGage Program
如果我来这个它将是mGageProgram
并且如果我生成(在eclipse中)getter和setter我会得到以下内容:
public String getmGageProgram() {
return mGageProgram;
}
public void setmGageProgram(String mGageProgram) {
this.mGageProgram = mGageProgram;
}
对我来说,这似乎并不正确,因为我期待getMGageProgram()
和setMGageProgram(value)
。
这些getter / setter名字是否正常?
答案 0 :(得分:3)
根据 8.8: Capitalization of inferred names of the JavaBeans API specification
从IDE 生成的名称是正确的。
答案 1 :(得分:2)
它们100%正确:)但程序员的约定不同,对我来说,它的方法名称在camel大小写而不是变量。至于语法正确:)
答案 2 :(得分:1)
我想提供更多有关规范说明的内容。它指定了我们如何从获取器和/或设置器的名称获取属性名称。在这种情况下,有趣的报价是:
…为了支持偶尔使用所有大写名称,我们检查是否 名称的前两个字符都是大写,如果是的话 别管它。
来自 8.8:推断名称的大写字母。
给出的一个示例是URL
(如getURL
或setURL
)变成(或停留在)URL
(不是uRL
)上。
因此,您和我所期望的方法名称getMGageProgram
和setMGageProgram
会隐含一个名为MGageProgram
且属性为大写M
的属性。由于我们需要mGageProgram
,因此我们需要在getter和setter的名称中使用小写的m
。
因此,按照我阅读的规则,实际上可以让您在任何获取器或设置器名称中的get
或set
之后使用小写字母。这让我感到惊讶。当然,在不需要的情况下,我们不希望利用此选项。