在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:");
}