成员接口只能在顶级类中定义 接口或静态上下文。
案例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行给出了以下错误消息"The member interface Foo can only be defined inside a top-level class or interface or in a static context.
"请帮我解决这个问题如果可以在静态上下文中定义接口,那么如何?
答案 0 :(得分:4)
您无法在方法中定义接口。
我认为错误消息所指的场景是在内部类中定义一个接口(可以这样做,但只有当它是static
内部类时):
class A{
static class X{
interface Y{}
}
}
答案 1 :(得分:0)
对于接口,嵌套接口和成员接口都是同一件事(与成员类相反)。而且,成员接口是被另一个类或另一个接口直接包围的接口。因此,本地接口不存在。