採用以下方法,什麼是不必要的測試null意味着什麼?
public void setDescription(final String description) {
this.description = description;
if (this.description == null || this.description.isEmpty()) {
this.description = "[description]";
}
}
的NetBeans顯示了this.description == null
部分說
對空不必要的測試的暗示 - 表達永遠不能爲null
這是什麼意思?我錯過了什麼?
UPDATE
我有相同的(那種)暗示另一種情況。
class User {
public void setUsername(final String username) {
if (this.username != null) { // <-- right here!
throw new IllegalStateException(
"already has a username");
}
this.username = username;
}
@NotNull
private String username;
}
NetBeans顯示部分this.username != null
的文本相同的提示。在這種情況下,NetBeans監督@NotNull
。如果您有興趣,請追蹤以下問題。
https://netbeans.org/bugzilla/show_bug.cgi?id=262707
NetBeans顯示此消息,因爲這意味着字符串永遠不會爲空,並且您可以刪除此檢查。但我不能說爲什麼。 – Jens 2015-02-09 07:19:21
告訴我們你如何調用'setDescription()' – TheLostMind 2015-02-09 07:22:16
我會說這是一個錯誤,應該被忽略。除非這個方法是私有的,否則Netbeans不可能知道它已經看到了所有的呼叫站點,因此也無法知道這個參數是否爲空。 OTOH是一個非常奇怪的代碼。你已經把一個明確的'null'改成了一個不明確的''[description]「'。 – EJP 2015-02-09 07:23:49