报告 return 点数超过指定最大值的方法。

一个 return 点可以是 return 语句,也可以是从 void 方法或构造函数底部的贯穿。

具有太多 return 点的方法可能会引起混淆并且难以重构。

示例:

如果只允许两个 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;
      }
    }
  }

配置检查: