Comment définir une interface membre dans un contexte statique en java?
L'interface membre ne peut être définie qu'à l'intérieur d'une classe de interface ou dans un contexte statique.
Cas A: L'interface dans une classe de niveau supérieur fonctionne parfaitement
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();
}
}
Cas B: L'interface dans une interface fonctionne bien.
public interface Creatable {
interface Foo{
void show();
}}
Cas C: je sais que cela semble stupide que pourquoi serait-on définir une interface dans un contexte statique. Mais cela me donne le même message d'erreur lorsque j'essaie de définir l'interface dans le contexte statique.
package multiplei.interfaces.test;
public class InterfaceBetweenClass {
public static void main(String[] args) {
interface Foo { //Line 5
void show();
}
}
}}
Mais la ligne numéro 5 me donne le message d'erreur suivant "The member interface Foo can only be defined inside a top-level class or interface or in a static context.
" Veuillez m'aider avec cela Si une interface peut être définie dans un contexte statique alors comment?
1 answers
Vous ne pouvez pas définir d'interfaces dans les méthodes.
Je pense que le scénario auquel le message d'erreur fait référence définit une interface à l'intérieur d'une classe interne (ce qui peut être fait, mais seulement s'il s'agit d'une classe interne static
):
class A{
static class X{
interface Y{}
}
}