Inspectopedia Help

Method always returns the same value

Reports methods and method hierarchies that always return the same constant.

The inspection works differently in batch-mode (from Code | Inspect Code or Code | Analyze Code | Run Inspection by Name) and on-the-fly in the editor:

  • In batch-mode, the inspection reports methods and method hierarchies that always return the same constant.

  • In the editor, the inspection only reports methods that have more than one return statement, do not have super methods, and cannot be overridden. If a method overrides or implements a method, a contract may require it to return a specific constant, but at the same time, we may want to have several exit points. If a method can be overridden, it is possible that a different value will be returned in subclasses.

Example:

class X { // Warn only in batch-mode: int xxx() { // Method 'xxx()' and all its overriding methods always return '0' return 0; } } class Y extends X { @Override int xxx() { return 0; } // Warn only in batch-mode: int yyy() { // Method 'yyy()' always returns '0' return 0; } // Warn both in batch-mode and on-the-fly: final int zzz(boolean flag) { // Method 'zzz()' always returns '0' if (Math.random() > 0.5) { return 0; } return 0; } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023