java中什么是不可访问的块?
在程序的生命周期中,控件从未到达且从未执行过的Java代码块/语句被称为无法访问的块/语句。
通常,只要有一段代码
在它之前的返回语句。
在它之前的无限循环。
Java不支持无法访问的代码。如果您有任何此类语句(无法访问),则Java编译器会引发编译时错误。
例1
在以下Java程序中,类UnreachableCodeExample具有名为greet的方法,该方法返回String值。return语句之后有一条print语句。
public class UnreachableCodeExample { public String greet() { System.out.println("This is a greet method "); return "Hello"; System.out.println("This is an unreachable code "); } public static void main(String args[]) { new UnreachableCodeExample().greet(); } }
编译时错误
因为我们有一个return语句,所以在println方法调用之前,在greet方法中它是不可访问的。如果您编译此程序,它将生成以下编译时错误-
输出结果
UnreachableCodeExample.java:5: error: unreachable statement System.out.println("This is an unreachable code "); ^ UnreachableCodeExample.java:6: error: missing return statement } ^ 2 errors
例2
在以下Java程序中,类UnreachableCodeExample具有名为greet的方法,该方法具有无限的while循环,其后是打印语句。
public class UnreachableCodeExample { public void greet() { System.out.println("This is a greet method "); while(true){ } System.out.println("This is an unreachable code "); } public static void main(String args[]) { new UnreachableCodeExample().greet(); } }
编译时错误
由于我们有一个无限循环,因此在println方法调用之前,在greet方法中它是不可访问的。如果您编译此程序,它将生成以下编译时错误-
UnreachableCodeExample.java:6: error: unreachable statement System.out.println("This is an unreachable code "); ^ 1 error