void A() {
B();
// return; <- compiler error "unreachable code"
if (true) return; // <- this works
// code that I will test later
...
C();
D();
}
这就是我现在所做的。是否有一个简单的“exit;
”或“return;
”,在不使用"unreachable code"
的情况下不会产生if
错误?
只是说清楚:if (true) return;
工作(警告“死码”,我不在乎也可以压制)!
如果我只是使用return;
,我会收到"unreachable code"
错误。
注意:如果提供参考,一个简单的“如果不使用if
就无法完成”也是一个可以接受的答案。
答案 0 :(得分:5)
不,Java不支持在代码块中间无条件返回,因为它在一般方案中没有“有意义”。 (Java编译器有充分的理由,必须进行相当强大的控制流分析,如果编译器允许,JVM验证程序仍会拒绝它。)
答案 1 :(得分:4)
问题在于:
if (true) return;
总是会调用return,因此后面的代码无法访问。如果您使用真实条件,则不会出现此警告。
但是,如果您只是想测试部分方法,我建议您只评论将在稍后测试的方法的其余部分。
答案 2 :(得分:1)
为什么不评论其余代码?
void A() {
B();
/* code that I will test later
C();
D();
*/
}
答案 3 :(得分:0)
if(true)return;
此语句产生无法访问的代码错误,因为编译器知道此if
块将被执行肯定(因为您已放置true
条件)。您的if
块包含return
语句,这意味着在下面的语句中,将不会执行。因此,您会收到"unreachable code"
错误。