The member interface can only be defined inside a top-level class or interface or in a static context.
Case A: Interface within a top-level class works perfectly
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();
}
}
Case B: Interface within an interface works good.
public interface Creatable {
interface Foo{
void show();
}}
Case C: I know it sounds stupid that why would anyone define an interface in a static context. But it give me the same error message when i try to define the interface in static context.
package multiplei.interfaces.test;
public class InterfaceBetweenClass {
public static void main(String[] args) {
interface Foo { //Line 5
void show();
}
}
}}
But line number 5 gives me the following error message "The member interface Foo can only be defined inside a top-level class or interface or in a static context.
" Please help me out with this If an interface can be defined in static context then how?