在Eclipse下,Java中的"Unreachable code error"和"dead code warning"是什么意思?
- 论坛
- 在Eclipse下,Java中的"Unreachable code error"和"dead code warning"是什么意思?
9 浏览
在Eclipse下,Java中的"Unreachable code error"和"dead code warning"是什么意思?
有人知道为什么在Eclipse下面这段代码会报"unreachable error"错误,但是下面这段代码只触发"Dead code"警告吗?
唯一的解释我能想到的是,Java编译器只会标记第一段代码,而Eclipse中的一些额外分析会发现第二段代码。然而,如果是这样的话,为什么Java编译器不能在编译时发现这种情况呢?
难道Java编译器不能在编译时发现if(true)没有效果,从而生成基本相同的字节码吗?可达代码分析是在哪个阶段应用的?
我猜这个问题的更一般的思考方式是:"可达代码分析是在什么时候应用的"?在将第二段Java代码片段转化为最终字节码的过程中,我确信在某个时候"if(true)"的运行时等效会被移除,两个程序的表示变得相同。那么Java编译器难道不会再次应用它的可达代码分析吗?