Java 第一个单词的第二个字母大写时的getter/setter

Java 第一个单词的第二个字母大写时的getter/setter,java,naming-conventions,getter-setter,camelcasing,Java,Naming Conventions,Getter Setter,Camelcasing,我们应该从以下名称中得到什么mGage程序 如果我这样做,它将是mGageProgram,如果我(在eclipse中)生成getter和setter,我将得到以下结果: public String getmGageProgram() { return mGageProgram; } public void setmGageProgram(String mGageProgram) { this.mGageProgram = mGageProgram; } 在我看来,这似乎并不正

我们应该从以下名称中得到什么<代码>mGage程序

如果我这样做,它将是
mGageProgram
,如果我(在eclipse中)生成getter和setter,我将得到以下结果:

public String getmGageProgram() {
    return mGageProgram;
}

public void setmGageProgram(String mGageProgram) {
    this.mGageProgram = mGageProgram;
}
在我看来,这似乎并不正确,因为我期待着
getMGageProgram()
setMGageProgram(value)


这些getter/setter名称正确吗

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

根据
8.8:JavaBeans API规范的推断名称的大小写

从IDE生成的名称是正确的,我想对规范中的内容进行更深入的介绍。它指定如何将getter和/或setter的名称转换为属性名称。在这方面,有趣的引语是:

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

它来自第8.8节:推断名称的大写

给出的一个例子是
URL
(如
getURL
setURL
)变成(或保持)
URL
(而不是
URL

因此,您和我所期望的方法名称,
getMGageProgram
setMGageProgram
,将暗示一个名为
MGageProgram
的属性,其大小写为
M
。因为我们想要
mGageProgram
我们需要在getter和setter的名称中使用小写的
m

因此,我阅读的规则确实允许您在任何getter或setter名称中的
get
set
后面使用小写字母。这对我来说是一个特别的惊喜。当然,在我们不需要的情况下,这不是我们想要利用的选项


链接:

谢谢。我更关心序列化/反序列化对象映射程序,而不仅仅是一个简单的约定。不过,它似乎与杰克逊和SpringMVC合作。