![](/img/trans.png)
[英]Sonar violation in Java on DoubleValue.equals(AnotherDoubleValue) - Why?
[英]Sonar Equals Avoid Null Violation
修复声纳违规并得到警告“等于避免为空:
字符串文字表达式应位于等号比较的左侧。”
if (title != null && !title.equals("")) {
//rest of loop
}
我将其更改为:
if(!("").equals(title) && title != null){
//rest of loop
}
那可以吗? 它会解决违规问题吗? 有人可以向我解释为什么原件是违法的吗? 我不了解此问题,并已阅读: https : //sonar43.spring.io/rules/show/checkstyle : com.puppycrawl.tools.checkstyle.checks.coding.EqualsAvoidNullCheck?layout=false
其他一两篇文章中,但我仍然看不出问题出在哪里...
警告告诉您不确定title
是否为null
。 但是,文字,例如空字符串,根据定义永远不能为空。 并且由于equals
可以将null
作为参数处理,因此您可以通过编写<literal>.equals(<somebject>)
来避免潜在的NullPointerException
。 如果您不在if语句中使用title
,则无需进行进一步的null检查:
if(!"".equals(title)){
//rest of loop
}
但是,由于要检查某些内容是否等于文字,因此让null值通过几乎没有意义。
该文档还具有以下相关注释:
另外,很常见的是在等于比较之前看到空检查,这是不必要的[...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.