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; } }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

SameReturnValue
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Declaration redundancy

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024