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;
}
}
- 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
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!