Java 第一个单词的第二个字母大写时的getter/setter
我们应该从以下名称中得到什么<代码>mGage程序 如果我这样做,它将是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; } 在我看来,这似乎并不正
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合作。