Java 如何在不使用(string==null)的情况下检查字符串是否仅为null?

Java 如何在不使用(string==null)的情况下检查字符串是否仅为null?,java,sonarqube,Java,Sonarqube,如果我使用If(string==null)将成为声纳违规。但是声纳建议是StringUtils.isEmpty(string)。但对于空字符串,它也将返回true StringUtils.isEmpty(string)检查string==null,因此您并没有真正避免该测试。如果需要知道字符串是否为null,只需检查String==null 测试null的唯一其他(愚蠢的)方法是取消对字符串的引用(例如,通过String.length())并在其为null时捕获NullPointerExecti

如果我使用
If(string==null)
将成为声纳违规。但是声纳建议是
StringUtils.isEmpty(string)
。但对于空字符串,它也将返回true

StringUtils.isEmpty(string)
检查
string==null
,因此您并没有真正避免该测试。如果需要知道字符串是否为null,只需检查
String==null

测试null的唯一其他(愚蠢的)方法是取消对字符串的引用(例如,通过
String.length()
)并在其为null时捕获
NullPointerExection


StringUtils.isEmpty(string)
在您的代码以相同的方式处理空字符串和空字符串时非常有用(这很常见)。

如果您不想忽略或修复声纳,可以使用它。

您想检查
string
是否为
null
,而不键入
string==null
?这是没有道理的,试图“欺骗”一个工具很少是一个好主意。要么找出声纳抱怨的原因并修复它,要么让它安静下来。你正在检查字符串是否为空,你为什么要尝试使用其他方法来这么做?只是因为某些工具限制了你?声纳的具体投诉是什么?第一步。卸载sonarqube。第二步。使用
strName==null
。如果(string==null)出现问题的规则是什么?如果这让你很烦恼,你可以在你的质量档案中禁用这个规则(卸载SQ看起来像是核心选项),或者只是将你的问题标记为假阳性。Sonarqube不会因为这样的使用而抛出违规。所以使用string==null完全可以吗?