如何在java中的静态上下文中定义成员接口?

如何在java中的静态上下文中定义成员接口?,java,interface,static,Java,Interface,Static,成员接口只能在顶级类或内部定义 接口或在静态上下文中 package multiplei.interfaces.test; public class InterfaceBetweenClass { public static void main(String[] args) { interface Foo { //Line 5 void show(); } } }} 案例A:顶级类中的接口工作正常 package

成员接口只能在顶级类或内部定义 接口或在静态上下文中

package multiplei.interfaces.test;

public class InterfaceBetweenClass {
    public static void main(String[] args) {
        interface Foo {  //Line 5
            void show(); 
        }
    }

}}
案例A:顶级类中的接口工作正常

package multiplei.interfaces.test;

public class InterfaceBetweenClass {

    interface Foo {
        void show();
    }

    class InnerClass implements Foo{
        public void show(){
            System.out.println("Inner Class implements Foo");
        }
    }

    public static void main(String[] args) {
        new InterfaceBetweenClass().new InnerClass().show();
    }

}
情况B:接口中的接口工作正常

public interface Creatable {
    interface Foo{
        void show();
    }}
案例C:我知道为什么有人要在静态上下文中定义接口听起来很愚蠢。但当我试图在静态上下文中定义接口时,它会给我相同的错误消息

package multiplei.interfaces.test;

public class InterfaceBetweenClass {
    public static void main(String[] args) {
        interface Foo {  //Line 5
            void show(); 
        }
    }

}}

但是第5行给了我以下错误消息
“成员接口Foo只能在顶级类或接口内或在静态上下文中定义。
“请帮助我解决这个问题,如果可以在静态上下文中定义接口,那么如何定义?

您不能在方法中定义接口

我认为错误消息所指的场景是在内部类中定义一个接口(这是可以做到的,但前提是它是
静态的
内部类):


对于接口,嵌套接口和成员接口是相同的(与成员类相反)。此外,成员接口是由另一个类或另一个接口直接封闭的接口。因此,本地接口不存在。

即使有可能,在方法中创建接口也没有任何意义。这个接口在方法范围之外是不可见的,甚至在以后在同一方法中创建的匿名内部类中也是不可见的。@TimothyTruckle我不知道这一点。这似乎与“本地类”的情况相同,并且这些类在方法中是允许的:@Thilo'这似乎与“本地类”的情况相同,但不完全相同。您创建本地类以便在同一方法中立即使用(而不是在其他地方),而您创建接口以在其他地方使用,而不是在实现它的具体类中使用。@TimothyTruckle您可以创建一个“本地接口”,并让三个“本地类”实现它。调用代码(也在相同的方法中)可以从中受益。请注意,您可以有抽象的局部类,而局部类可以从其他局部类进行扩展。静态嵌套类与顶级类类似,因此应该在案例A中介绍,我想:(