命名约定——Java方法名:useXxx() vs. setXxx()



在Java方法名前加上useXxx()setXxx()是否有一个通用的准则?

我尝试调用Scanner类的setDelimiter()方法,却发现它被命名为useDelimiter()。JavaDoc将此方法描述为"设置此扫描程序的分隔模式…"

为什么是useXxx()而不是setXxx()呢?

它不是标准设置器方法。它设置分隔模式并返回扫描器对象

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

命名方法.setXxx().getXxx()只是JavaBeans的约定。如果您没有显式地将类用作bean (Scanner当然不是bean),您可以随意命名您的方法。

同样,这个.useDelimiter()方法返回this,而JavaBeans设置返回void。如果该方法遵循bean约定,则不能这样写:

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

方法名唯一真正的约定,除非你想让你的类是一个bean,应该是它们是自解释的。

这绝对不一致。

我通常期望访问器的形式是setX/getX(或isX为布尔值)。这是JavaBeans约定的一部分。很多框架和工具都被明确地编码为以这种方式工作,如果你忽略它,你将失去互操作性。

但是,请注意它不是不正确的。但是无论如何,我还是会尽量保持一定程度的互操作性。

"setXXX()"one_answers"getXXX()"不仅仅是"约定"——这些名称也被Java bean识别为"getter"one_answers"setter"方法。如果您的类恰好是Java Bean。类"Scanner"不是:)

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

 public void setManagerID()
 {
      String managerID = null;
    managerID = JOptionPane.showInputDialog(null,"Input an ID:");
  }

最新更新