[英]Is it bad practice to doStuff and return a boolean?
在我正在關注的java課程中,如果鍵還沒有值,我需要為鍵添加一個值,除此之外,如果鍵已被添加或者它們也希望該方法返回true當密鑰已經有值時為false。
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方法呢?
在Java的util類中,這些方法被廣泛使用。
只需看看類ArrayList,幾乎每個人都知道:
在這個類中有一個名為boolean add(T e)
,並且java中有許多其他類都是這樣工作的。
在我看來,它沒問題,它使測試更容易。 (您可以通過返回值檢查方法是否成功)
為添加這樣的東西返回布爾值可能非常有用。 事實上, put
返回舊值,因為它有其用途。
所以你不需要使用get
- 或更好的containsKey
但是可以這樣做:
public boolean add(RegistrationPlate plate, String owner) {
String oldValue = register.put(plate, owner);
return oldValue == null || !owner.equals(oldValue);
}
|| ...
|| ...
有點過頭了。
我認為有一個返回真值的'add'方法很奇怪,如果這是一個void方法呢?
絕對不奇怪。 不要將boolean
方法視為提問和返回是或否答案的方法。 他們可以做得更多!
看一下Java源代碼,你會發現某些方法的boolean
返回類型有多好。 想要向對象添加內容? 它成功了嗎? 在多種情況下, boolean
返回類型對於彼此之間進行通信的類/對象/方法是有利的。
看一下Java的ArrayList remove(Object)實現,以獲得提供額外信息的boolean
返回類型的一個很好的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.