RETURN 是否随时退出该方法,即使它在复杂的 IF 语句中?

Is RETURN going out the method at any moment, even if it is in a complex IF statement?

我有这样的代码:

private final Something (SomethingElse nimportant)

    List list = (List) mListOfSomething.get(SOME_ENUMS);

    if (list == null) 
// dont ask me why not list.isEmpty(), I'm not the author of this code)
        list = new ArrayList();

        if (transaction.getPartner() instanceof IAnotherSomething) {

            IAnotherSomething ias = (IAnotherSomething) transaction.getPartner();
            return ias.getContract().next();
        }

// NIMPORTANT code ommited, produces boolean "something"

        if (something) {
            // something happens
            list.add(contract)
        }

        if (!something) {
            // something else happens
            list.add(contract)
        }
    }

    return (IContract) list.get(0);
}

我很头疼 - 如果列表为空,(或 == null)并且此 if 语句 (transaction.getPartner() instanceof IAnotherSomething) 为真,则该方法应该在此 i​​f 语句上退出并且应该 return ias.getContract().next() - 还是我错了?

A return 语句结束方法的执行,return将指定的值传递给方法的调用者,无论它位于方法中的何处。它是否在 "complex if statement".

内并不重要

在一些特殊情况下,return 语句不会是方法中执行的最后一条语句:

  1. return 语句包含在包含 finally 块的 try 子句中,该语句将在 return 从方法中执行之前执行。

  2. return 语句包含在一个 try 子句中,表达式的求值被 returned 抛出一个被 catch 块捕获的异常,它将被执行(并且必须有一个 return 语句或抛出异常)。