← 返回首页
Useless null check — CodeQL query help documentation CodeQL docs
CodeQL documentation
CodeQL resources

Useless null check

ID: java/useless-null-check Kind: problem Security severity: Severity: warning Precision: very-high Tags: - quality - maintainability - useless-code - external/cwe/cwe-561 Query suites: - java-code-quality.qls - java-security-and-quality.qls

Click to see the query in the CodeQL repository

Sometimes you can guarantee that a particular variable will never be null. For example when that variable has just been assigned a newly created object or is the exception caught by a catch clause. A null check on such a variable is misleading, and can potentially indicate a logic error.

Recommendation

Do not check a variable for null if a null value is clearly impossible.

Example

The following example shows a null check on a newly created object. An object returned by new can never be null, so this check is superfluous.

Object o = new Object(); if (o == null) { // this cannot happen! }

References