Java-我们可以从初始值设定项中返回吗?

Java-我们可以从初始值设定项中返回吗?,java,jls,Java,Jls,为什么静态初始值设定项不能有多个退出点?Java语言规范说明了这一点吗 尝试将代码编译为: class HelloWorldApp { static { if(1 > 2) return; System.out.println("static"); } public static void main(String[] args) { System.out.println("Hello World

为什么静态初始值设定项不能有多个退出点?Java语言规范说明了这一点吗

尝试将代码编译为:

class HelloWorldApp {
    static {
        if(1 > 2)
          return;
        System.out.println("static"); 
    }

    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}
编译器打印出一个错误:
返回外部方法


使用
javap
进行Java反汇编表明
static
是一种无效的方法,因此从理论上讲是可能的,要创建具有多个“返回”的字节码?

JLS声明
静态
初始值设定项中的
返回
语句是非法的。

JLS声明
静态
初始值设定项中的
返回
语句是非法的。这看起来像是JVM问题,而不是JLS问题。太多的规格有时确实不同,这可能是其中之一。请参阅:@SotiriosDelimanolis将其转化为答案,以便我可以接受it@ChrisK我能够用Jasmin创建.class文件,谢谢,所以它在JVM中运行没有问题。这让我想知道为什么在JLS中禁止返回语句。