The return type of such methods can be made void
.
Methods annotated with Error Prone's or AssertJ's @CanIgnoreReturnValue
annotation will not be reported.
The quick-fix updates the method signature and removes return
statements from inside the method.
Example:
// reported if visibility setting is Protected or Public protected String myToUpperCase(String s) { return s.toUpperCase(); } // simple setter, reporting depends on setting public String setStr(String str) { myStr = str; return myStr; } void test() { setStr("value"); // return value is unused myToUpperCase("result"); // return value is unused }
After the quick-fix is applied to both methods:
protected void myToUpperCase(String s) { // 'return' removed completely // as 's.toUpperCase()' has no side effect } public void setStr(String str) { myStr = str; // 'return' removed } ...
NOTE: Some methods might not be reported during in-editor highlighting due to performance reasons. To see all results, run the inspection using Analyze | Inspect Code... or Analyze | Run Inspection by Name...
Use the Ignore simple setters option to ignore unused return values from simple setter calls.
Use the Maximal reported method visibility option to control the maximum visibility of methods to be reported.