是否有使用useXxx()
与setXxx()
为Java方法名称添加前缀的一般准则?
我尝试调用Scanner类的setDelimiter()
方法,但却发现它名为useDelimiter()
。 JavaDoc将此方法描述为“设置此扫描器的分隔模式......”
那么,为什么useXxx()
代替setXxx()
?
答案 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:");
}