在我正在关注的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方法吗?
答案 0 :(得分:2)
在Java的util类中,这些方法被广泛使用。
只需看看类ArrayList,几乎每个人都知道:
在这个类中有一个名为boolean add(T e)
的方法,
并且java中有许多其他类都是这样工作的。
在我看来,没关系,它使测试更容易。 (您可以通过返回值检查方法是否成功)
答案 1 :(得分:0)
为添加这样的东西返回一个布尔值可能非常有用。实际上put
会返回旧值,因为它有其用途。
因此您无需使用get
- 或更好containsKey
,但可以这样做:
public boolean add(RegistrationPlate plate, String owner) {
String oldValue = register.put(plate, owner);
return oldValue == null || !owner.equals(oldValue);
}
|| ...
有点过头了。
答案 2 :(得分:0)
我认为有一个&#39;添加&#39;返回真值的方法,这应该是一个空方法吗?
绝对不怪异。不要将boolean
方法视为提问和回答是或否答案的方法。他们可以做得更多!
看看Java源代码,您将意识到某些方法具有boolean
返回类型的好处。
想要向对象添加内容?它成功了吗?在多种情况下,boolean
返回类型对于彼此之间进行通信的类/对象/方法是有利的。
查看Java的ArrayList remove(Object) implementation,了解提供额外信息的boolean
返回类型的一个很好的例子。