Java - 多个 return 语句 - 第一个不是 returning?

Java - multiple return statements - first one not returning?

我正在研究一些 Android 编程,并且正在编写一些打开和关闭文件的方法。好吧,我想对文件做一些基本检查,如果满足条件,则 return 为真,如果到达方法末尾,则 return 为假。

我正在使用 AndroidTestCase 测试这些,在我向我的清单添加所需的权限以修复我的 "canRead()" 调用后,我开始单步执行它们。我看到调试器命中了我的 "return true" 语句,但随后越过该语句,它移动到下一行 "return false" 而不是实际 returning.

我知道我可以将 "return false" 包装在一个 else 块中,但我很好奇为什么该函数在据说 returning 之后继续执行。 "if" 块中的 return 语句是否只是 return 出块,还是应该 return 出整个函数调用?

public boolean OpenFile(String testFile) {
    myFile = new File(testFile);
    if (myFile.exists() && myFile.isFile() && myFile.canRead()) {
        return true;
    }
    return false;
}

public boolean CloseFile() {
    if (myFile != null ) {
        return true;
    }
    return false;
}

如果您的 if 语句中的条件为真,则会执行 return true; 并且方法终止。

要检查这一点,只需在return false; 指令前加上一个println(...),你会发现它不会被执行。再次检查您的调试,您可能被该工具弄糊涂了。