Back to Intellij Community

ThreeNegationsPerMethod

java/java-impl/resources/inspectionDescriptions/ThreeNegationsPerMethod.html

2025.3-rc-2679 B
Original Source

Reports methods with three or more negations. Such methods may be confusing.

Example:

void doSmth(int a, int b, boolean flag1, boolean flag2) {
    if (!flag && !flag2) {
      if (a != b) {
        doOther();
      }
    }
  }

Without negations, the method becomes easier to understand:

void doSmth(int a, int b, boolean flag1, boolean flag2) {
    if (flag1 || flag2 || a == b) return;
    doOther();
  }

Configure the inspection:

  • Use the Ignore negations in 'equals()' methods option to disable the inspection within equals() methods.
  • Use the Ignore negations in 'assert' statements to disable the inspection within assert statements.