当我创建一个JAVA类时,我设置了一些私有变量,然后创建了getter和setter。我什么时候得到了一些奇怪的结果。这是该类的代码片段:
private String xPageName;
private String nameXPage;
public String getXPageName() {
return xPageName;
}
public void setXPageName(String pageName) {
xPageName = pageName;
}
public String getNameXPage() {
return nameXPage;
}
public void setNameXPage(String nameXPage) {
this.nameXPage = nameXPage;
}
变量xPageName的getter和setter与我预期的方式不同。我创建了另一个变量aPageName并得到了同样奇怪的结果getter和setter。是否存在JAVA命名约定,它使用小写首字母和大写第二个字母执行不同的操作?
答案 0 :(得分:2)
此行为似乎特定于Domino Designer(8.5.3和9.0.1)。它确实创建了以下setter:
private String aaPage;
private String aPage;
private String aPa;
private String aP;
private String a;
public void setAaPage(String aaPage) {
this.aaPage = aaPage;
}
public void setAPage(String page) {
aPage = page;
}
public void setAPa(String pa) {
aPa = pa;
}
public void setAP(String ap) {
aP = ap;
}
public void setA(String a) {
this.a = a;
}
三个中间生成的二传手实际上很奇怪。这"特别"当您选择"来源/生成获取者和设置者时,会创建设置者的参数..."。由于参数名称与私人字段名称不同,因此不需要添加"此。"。
虽然它很奇怪,但这并不意味着它是错的。但是,它并没有真正遵循通常的惯例......
如果您点击private String ...
行中的STRG + 1并选择&#34;为&#39; ...&#39;&#34;创建getter和setter,则会以正常方式生成Setter。< / p>
在Eclipse(Juno)中按预期工作。
答案 1 :(得分:1)
java中方法名称的约定是CamelCase,这意味着第一个单词是小写,所有下一个单词都是大写的。
这就是xPageName
中被视为单词的x在不再是第一个单词时变为大写的原因(如getXPageName
中所示)
答案 2 :(得分:1)
您可能忘记了setxPageName中的'this'。我在spring工具套件中使用了自动getter和setter生成器并得到了这个:
private String xPageName;
private String nameXPage;
public String getxPageName() {
return xPageName;
}
public void setxPageName(String xPageName) {
this.xPageName = xPageName;
}
public String getNameXPage() {
return nameXPage;
}
public void setNameXPage(String nameXPage) {
this.nameXPage = nameXPage;
}
所以也许在xPageName函数中使用x是问题
答案 3 :(得分:1)
我认为你的意思是一个不使用“this”关键字的setter? 这肯定很奇怪,但如果你愿意,你可以添加它。 这个代码是由DDE的Java编辑器生成的吗?从来没有这样的效果......