Java接口中的JLS-8类只能位于最顶层

Java接口中的JLS-8类只能位于最顶层,java,Java,定义只能在最上面的类上定义接口,而它允许在静态方法中定义抽象类。为什么我们不能在方法内部定义接口,就像我们可以定义类或抽象类以及最终的静态变量常量一样 public class HelloWorld { public static void main(String[] args) { class ThisWorks { } abstract class ThisAlsoWorks { public static

定义只能在最上面的类上定义接口,而它允许在静态方法中定义抽象类。为什么我们不能在方法内部定义接口,就像我们可以定义类或抽象类以及最终的静态变量常量一样

public class HelloWorld {

    public static void main(String[] args) {

        class ThisWorks {
        }

        abstract class ThisAlsoWorks {
            public static final String key = "value";
        }

        interface ThisDoesntWork {
        }

    }
}

回答:因为规范这么说!反问:为什么有人想要/需要它?