Java-多个返回语句-第一个不返回?
我正在玩弄一些Android编程,正在编写一些打开和关闭文件的方法。我想对文件进行一些基本检查,如果满足条件,则返回true,如果到达方法末尾,则返回false 我正在用AndroidTestCase测试这些,在我向清单中添加了修复“canRead()”调用所需的权限之后,我开始逐步检查它们。我看到调试器点击了我的“return true”语句,但经过这一步,它会转到下一行“return false”,而不是实际返回 我知道我可以将“return false”封装在else块中,但我只是好奇为什么函数在假定返回后继续执行。“if”块中的return语句是从块中返回,还是从整个函数调用中返回Java-多个返回语句-第一个不返回?,java,android,debugging,return,Java,Android,Debugging,Return,我正在玩弄一些Android编程,正在编写一些打开和关闭文件的方法。我想对文件进行一些基本检查,如果满足条件,则返回true,如果到达方法末尾,则返回false 我正在用AndroidTestCase测试这些,在我向清单中添加了修复“canRead()”调用所需的权限之后,我开始逐步检查它们。我看到调试器点击了我的“return true”语句,但经过这一步,它会转到下一行“return false”,而不是实际返回 我知道我可以将“return false”封装在else块中,但我只是好奇为什
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
语句中的条件为true,则返回true代码>被执行,方法终止
要检查这一点,只需将println(…)
放在返回false之前代码>指令,您将看到它不会被执行。再次检查您的调试,您可能被该工具弄糊涂了。它与返回的位置无关,问题是该条件不满足。请尝试避免if(expression)返回true/false代码>模式。它可以是return myFile.exists()&&myFile.isFile()&&myFile.canRead()代码>和返回我的文件!=无效代码>.return始终在执行时立即从函数调用返回。你所描述的并没有发生。调试时,您可能会错误地解释所看到的内容。添加一些日志语句并向我们显示输出。请在返回值之前尝试打印,。看看实际情况behavior@AlexisC. 在这个表达式中会有额外的逻辑,“return true”只是测试我的测试的一个占位符。是的,我只是对步进的工作方式感到困惑。在测试方法中为调用设置断点后,我能够验证它是否按预期返回true。