Inspectopedia Help

Constant values

Reports expressions and conditions that always produce the same result, like true, false, null, or zero. Such expressions could be replaced with the corresponding constant value. Very often though they signal about a bug in the code.

Examples:

// always true // root cause: || is used instead of && if (x > 0 || x < 10) {} System.out.println(str.trim()); // always false // root cause: variable was dereferenced before null-check if (str == null) {}

The inspection behavior may be controlled by a number of annotations, such as nullability annotations, <a href="https://www.jetbrains.com/help/idea/contract-annotations.html">@Contract</a> annotation, @Range annotation and so on.

Configure the inspection:

  • Use the Don't report assertions with condition statically proven to be always true option to avoid reporting assertions that were statically proven to be always true. This also includes conditions like if (alwaysFalseCondition) throw new IllegalArgumentException();.

  • Use the Ignore assert statements option to control how the inspection treats assert statements. By default, the option is disabled, which means that the assertions are assumed to be executed (-ea mode). If the option is enabled, the assertions will be completely ignored (-da mode).

  • Use the Warn when constant is stored in variable option to display warnings when variable is used, whose value is known to be a constant.

Before IntelliJ IDEA 2022.3, this inspection was part of "Constant Conditions & Exceptions" inspection. Now, it split into two inspections: "Constant Values" and "Nullability and data flow problems".

Inspection options

Option

Type

Default

Don't report assertions with condition statically proven to be always true

Checkbox

false

Ignore assert statements

Checkbox

false

Warn when constant is stored in variable

Checkbox

true

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023