class Return
{
public static void main(String args[])
{
boolean t=true;
System.out.println("Before the return");
if(t)
return;
System.out.println("This wont execute");
}
}
该程序来自Herbert Schidt。我试图在没有if(t)的情况下使用命令提示符运行该程序 查看编译错误
error: unreachable statement
System.out.println("Wont Execute");
我理解此错误,但是当我执行命令java Return时程序运行正常。 显示输出
执行
所以我想知道即使有编译错误,该程序如何运行?
答案 0 :(得分:2)
几乎可以肯定,您正在运行该类的最后一个成功编译的版本。当您执行Java编译器时,它不会清除其旧的输出,而是会覆盖它。因此,如果成功编译一次Return.java
,则磁盘上将有一个Return.class
。如果将Return.java
更改为不可编译并尝试对其进行编译,则先前成功编译中的Return.class
仍将存在。