Java方法名称:useXxx()与setXxx()

时间:2013-01-10 17:42:19

标签: java naming-conventions

是否有使用useXxx()setXxx()为Java方法名称添加前缀的一般准则?

我尝试调用Scanner类的setDelimiter()方法,但却发现它名为useDelimiter()。 JavaDoc将此方法描述为“设置此扫描器的分隔模式......”

那么,为什么useXxx()代替setXxx()

5 个答案:

答案 0 :(得分:2)

命名方法.setXxx().getXxx()只是JavaBeans的约定。如果你没有明确地将你的类用作bean(并且Scanner当然不是一个),你可以根据自己的喜好命名你的方法。

此外,此.useDelimiter()方法返回this,而JavaBeans setter返回void。如果此方法确实遵循bean约定,则无法编写:

Scanner scanner = new Scanner(System.in).useDelimiter(xxx);

方法名称唯一真正的约定,除非你打算让你的类成为bean,否则它们应该是自我解释的。

答案 1 :(得分:2)

它不是标准的setter方法。它设置了delimPattern并返回Scanner对象

 public Scanner useDelimiter(Pattern pattern) {
    delimPattern = pattern;
    return this;
}

答案 2 :(得分:0)

这肯定是不一致的。

我通常希望访问者的格式为setX / getX(或isX为布尔值)。这是JavaBeans约定的part。许多框架和工具都被明确编码以便以这种方式工作,如果忽略它,你将失去互操作性。

但请注意,它不是不正确的。但我会尝试保持一定程度的互操作性。

答案 3 :(得分:0)

“setXXX()”和“getXXX()”不仅仅是“约定” - Java Beans也将这些名称识别为“getter”和“setter”方法。如果您的类恰好是Java Bean。 “扫描仪”类不是:)

否则,这只是一个问题偏好。

答案 4 :(得分:0)

在Java setXxx()方法中,'set'用于设置值,例如设置管理器的ID:

 public void setManagerID()
 {
      String managerID = null;

    managerID = JOptionPane.showInputDialog(null,"Input an ID:");

  }