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?
You cannot define interfaces within methods.
I think the scenario the error message is referring to is defining an interface inside an inner class (which can be done, but only if that is a static
inner class):
class A{
static class X{
interface Y{}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With