Rule that checks for unnecessary if statements. If/else statements are considered unnecessary for the four scenarios described below.
(1) When the if and else blocks contain only an explicit return oftrue
and false
constants. These cases can be replaced by a simple return statement. Examples include:
if (someExpression) return true else return false
- can be replaced by return someExpression
if (someExpression) { return true } else { return false }
- can be replaced by return someExpression
if (someExpression) { return Boolean.TRUE } else { return Boolean.FALSE }
- can be replaced by return someExpression
true
and false
expressions. This is an implicit return of true/false.
For example, the if statement in the following code can be replaced by someExpression
:
boolean myMethod() {
doSomething()
if (someExpression) true; else false
}
(3) When the second-to-last statement in a block is an if statement with no else, where the block contains a single
return statement, and the last statement in the block is a return statement, and one return statement returns a
true
expression and the other returns a false
expression.
For example, the if statement in the following code can be replaced by return expression1
:
if (expression1) {
return true
}
return false
NOTE: This check is disabled by setting checkLastStatementImplicitElse to false.
(4) When either the if block or else block of an if statement that is not the last statement in a
block contain only a single constant or literal expression
For example, the if statement in the following code has no effect and can be removed:
def myMethod() {
if (someExpression) { 123 }
doSomething()
}
Type | Name and description |
---|---|
Class |
astVisitorClass |
boolean |
checkLastStatementImplicitElse |
String |
name |
int |
priority |