我最近在发布之前从我们的代码库中删除了一段代码,并使用了 if(false) 语句来阻止执行:
if (false) {
ArrayList<String> list = new ArrayList<String>();
...
}
这编译得很好,并且会阻止执行有问题的代码块(对或错,这不是当前的论点)。
但是,有点偶然,我将上面的块更改为:
while (false) {
ArrayList<String> list = new ArrayList<String>();
...
}
并收到无法访问的语句编译错误。
我很欣赏编译错误并理解其中的原因,但是,我很难理解这两个块之间的区别以及为什么前者编译得很好但后者在它们都有无法访问的语句时却不能。