无用的空值检查¶
ID: java/useless-null-check
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- useless-code
- external/cwe/cwe-561
Query suites:
- java-security-and-quality.qls
有时您可以保证特定变量永远不会为空。例如,当该变量刚刚被分配了一个新创建的对象或被 catch
子句捕获的异常时。对这种变量的空值检查具有误导性,并且可能表明逻辑错误。
建议¶
如果空值显然不可能,请不要检查变量是否为空。
示例¶
以下示例显示了对新创建对象的空值检查。通过 new
返回的对象永远不会为空,因此此检查是多余的。
Object o = new Object();
if (o == null) {
// this cannot happen!
}
参考¶
Java 语言规范:创建新类实例,try-catch 的执行。
常见弱点枚举:CWE-561。