创建Getters / Setter时出现意外结果

时间:2014-07-25 17:25:32

标签: java xpages naming-conventions

当我创建一个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命名约定,它使用小写首字母和大写第二个字母执行不同的操作?

4 个答案:

答案 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编辑器生成的吗?从来没有这样的效果......