Inspectopedia Help

Method with multiple return points

Reports methods whose number of return points exceeds the specified maximum. Methods with too many return points may be confusing and hard to refactor.

A return point is either a return statement or a falling through the bottom of a void method or constructor.


The method below is reported if only two return statements are allowed:

void doSmth(User[] users) { for (User user : users) { if (cond1(user)) { user.setId(getId()); return; } else if (cond2(user)) { if (cond3(user)) { user.setId(getId()); return; } } } }

Consider rewriting the method so it becomes easier to understand:

void doSmth(User[] users) { for (User user : users) { if (cond1(user) || cond2(user) && cond3(user)) { user.setId(getId()); return; } } }

Configure the inspection:

  • Use the Return point limit field to specify the maximum allowed number of return points for a method.

  • Use the Ignore guard clauses option to ignore guard clauses. A guard clause is an if statement that contains only a return statement

  • Use the Ignore for 'equals()' methods option to ignore return points inside equals() methods.

Inspection options

Here you can find the description of settings available for the Method with multiple return points inspection, and the reference of their default values.

Return point limit


Ignore guard clauses

Not selected

Ignore for 'equals()' methods

Not selected

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024