return 지점 수가 지정된 최댓값을 초과하는 메서드를 보고합니다. return 지점이 너무 많은 메서드는 혼란을 주고 리팩터링하기 어려울 수 있습니다.

return 지점은 return 문이거나 void 메서드 또는 생성자의 하단에 도달하는 것을 나타냅니다.

예:

두 개의 return 문만 허용되는 경우 아래 메서드가 보고됩니다.


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

이해하기 더 쉽도록 이 메서드를 다시 작성하는 것을 고려하세요.


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

검사 구성: