是否有使用useXxx()
vs.为 Java 方法名称添加前缀的一般准则setXxx()
?
我试图调用setDelimiter()
Scanner 类的方法,却发现它被命名为useDelimiter()
. JavaDoc 将此方法描述为“设置此扫描仪的分隔模式...”
那么,为什么useXxx()
而不是setXxx()
?
是否有使用useXxx()
vs.为 Java 方法名称添加前缀的一般准则setXxx()
?
我试图调用setDelimiter()
Scanner 类的方法,却发现它被命名为useDelimiter()
. JavaDoc 将此方法描述为“设置此扫描仪的分隔模式...”
那么,为什么useXxx()
而不是setXxx()
?
命名方法.setXxx()
或.getXxx()
只是JavaBeans的约定。如果您没有明确地将您的类用作 bean(Scanner
当然不是),您可以随意命名您的方法。
此外,此.useDelimiter()
方法返回this
,而 JavaBeans 设置器返回void
。如果此方法确实遵循 bean 约定,您将无法编写:
Scanner scanner = new Scanner(System.in).useDelimiter(xxx);
方法名称的唯一真正约定,除非您确实打算将您的类作为 bean,否则它们应该是自我解释的。
这不是标准的二传手方法。它设置 delimPattern 并返回 Scanner 对象
public Scanner useDelimiter(Pattern pattern) {
delimPattern = pattern;
return this;
}
这绝对是不一致的。
我通常希望访问器的形式为setX
/ getX
(或isX
布尔值)。这是JavaBeans 约定的一部分。许多框架和工具都被明确编码为以这种方式工作,如果忽略它,您将失去互操作性。
但是请注意,这不是不正确的。但无论如何,我都会尝试保持一定程度的互操作性。
“setXXX()”和“getXXX()”不仅仅是“约定”——它们的名称也被 Java Beans 识别为“getter”和“setter”方法。如果你的类恰好是一个 Java Bean。“扫描仪”类不是:)
否则,这只是一个问题偏好。
在 Java setXxx() 方法中,'set' 用于设置一个值,例如设置一个经理的 ID:
public void setManagerID()
{
String managerID = null;
managerID = JOptionPane.showInputDialog(null,"Input an ID:");
}