我最近开始使用Eclipse进行Android开发。通过代码调试时,我注意到一个奇怪的行为(至少与Visual Studio相比):在函数中间点击return语句后,它不会立即返回,但总是跳转到最后一个return语句。例如:
String getTest(int i){
if (i == 0)
return "0";
return "-1";
}
给定i = 0,在点击第一个return语句后,它不会跳出这个函数,而是移动到下一个return语句。但是,它确实返回“0”,而不是“-1”。那么,为什么这个虚拟步骤呢?这对我来说很困惑。谁能解释为什么?
答案 0 :(得分:1)
这只是eclipse调试器中的一个直观的东西,无论return语句在哪里,它都会在完成自身之前移动到函数的末尾。 即:
line:1 String method(String i){
line:2 return i;
line:3 extra code here...
line:4 extra code here...
line:5 extra code here...
line:6 extra code here...
line:7 return "fake return";
line:8 }
调试器将始终从第1行到第2行,然后到第8行,然后返回到首先调用它的代码,它将始终返回i,从不“假返回”。
希望这会有所帮助。
答案 1 :(得分:0)
这与" return"的确切构成有关。从一个功能。虽然这取决于平台,但返回通常必须:
只有返回值不同,编译器可以选择生成机器代码(如果是java的字节代码),并从不同位置跳转到它。 Eclipse可能会显示跳转。