Java 空值的不必要测试意味着什么?
用下面的方法,Java 空值的不必要测试意味着什么?,java,null,expression,Java,Null,Expression,用下面的方法, public void setDescription(最终字符串描述){ this.description=描述; if(this.description==null | | this.description.isEmpty()){ this.description=“[description]”; } } NetBeans在部分显示提示。description==null 对null不必要的测试-表达式从不为null 这是什么意思?我错过了什么 更新 我有另一种情况,有同样
public void setDescription(最终字符串描述){
this.description=描述;
if(this.description==null | | this.description.isEmpty()){
this.description=“[description]”;
}
}
NetBeans在部分显示提示。description==null
对null不必要的测试-表达式从不为null
这是什么意思?我错过了什么
更新
我有另一种情况,有同样的暗示
类用户{
public void setUsername(最终字符串用户名){
如果(this.username!=null){/您描述的行为与
在netbeans 7.3.1之前,应该一直修补该错误。我在netbeans 8.0.2中测试了您的代码,但没有显示任何提示。netbeans显示此消息,因为这意味着字符串从不为null
,您可以删除此检查。但我无法说明原因。请告诉我们如何调用setDescription()
我认为这是一个bug,应该被忽略。除非该方法是私有的,否则Netbeans无法知道它已经看到了所有的调用站点,因此也无法知道参数从不为null。这是一个非常奇怪的代码。您将一个明确的null
更改为一个模糊的“[说明]”
。你是否尝试过清理/重建你的代码。这确实很奇怪。@Jin-Kwon你能检查一下我的答案是否正确吗?新一代的同类代码。
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;
}