SimplifyBooleanReturn

Since Checkstyle 3.0

Description

Checks for over-complicated boolean return statements. For example the following code

if (valid())
  return false;
else
  return true;
        

could be written as

return !valid();
        

The idea for this Check has been shamelessly stolen from the equivalent PMD rule.

Examples

To configure the check:

<module name="Checker">
  <module name="TreeWalker">
    <module name="SimplifyBooleanReturn"/>
  </module>
</module>
        

Example:

public class Test {

 private boolean cond;
 private Foo a;
 private Foo b;

 public boolean check1() {
  if (cond) { // violation, can be simplified
    return true;
  }
  else {
    return false;
  }
 }

 // Ok, simplified version of check1()
 public boolean check2() {
  return cond;
 }

 // violations, can be simplified
 public boolean check3() {
  if (cond == true) { // can be simplified to "if (cond)"
    return false;
  }
  else {
    return true; // can be simplified to "return !cond"
  }
 }

 // Ok, can be simplified but doesn't return a Boolean
 public Foo choose1() {
  if (cond) {
    return a;
  }
  else {
    return b;
  }
 }

 // Ok, simplified version of choose1()
 public Foo choose2() {
  return cond ? a: b;
 }

}
        

Example of Usage

Violation Messages

All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.

Package

com.puppycrawl.tools.checkstyle.checks.coding

Parent Module

TreeWalker