【发布时间】:2015-10-29 18:58:29
【问题描述】:
在我现在正在学习的java课程中,如果键还没有值,我需要为键添加一个值,此外,如果键有值,他们还希望该方法返回true当键已经有值时被添加或为假。
HashMap<RegistrationPlate, String> register = new HashMap<RegistrationPlate, String>();
public boolean add(RegistrationPlate plate, String owner) {
if (register.get(plate) == null) {
register.put(plate, owner);
return true;
}
return false;
}
我认为有一个返回真值的“add”方法很奇怪,这应该是一个 void 方法吗?
【问题讨论】:
-
一点也不奇怪!这是确保您的方法成功运行的常见做法。这样,您可以执行
result = add(x,x)之类的操作,并在继续之前检查result。如果您假设它可以工作,那么以后可能会破坏更多代码。 -
我认为以任何方式使用
void都是非常糟糕的习惯。void没有任何意义,它没有贡献。退货很好,因为它免费提供信息。当您尝试返回void时,请考虑一下您可以在返回值中提供什么样的信息。 -
完全没问题。例如 java
createFile()如果成功创建则返回true否则返回false -
@HuStmpHrrr 使用
void也不错,在很多情况下你会使用void... -
@brso05 好吧,您不必在所有情况下都返回某些东西。但大多数时候,您确实可以返回一些有用的东西。在这种情况下,是的。另一个常见的例子是 setter 方法。为什么二传手应该返回
void?例如,它应该返回实例本身,以便允许instance.setF1(f1).setF2(f2).setF3(f3)并且更简洁。还有很多其他的例子。
标签: java null hashmap boolean return