Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
¿Cómo definir una interfaz de miembro en un contexto estático en Java?

La interfaz de miembro solo se puede definir dentro de una clase o interfaz de nivel superior o en un contexto estático.

Caso A: la interfaz dentro de una clase de nivel superior funciona perfectamente

 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(); } }

Caso B: la interfaz dentro de una interfaz funciona bien.

 public interface Creatable { interface Foo{ void show(); }}

Caso C: Sé que suena estúpido por qué alguien definiría una interfaz en un contexto estático. Pero me da el mismo mensaje de error cuando intento definir la interfaz en un contexto estático.

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

Pero la línea número 5 me da el siguiente mensaje de error: "The member interface Foo can only be defined inside a top-level class or interface or in a static context. Por favor, ayúdenme con esto. Si una interfaz se puede definir en un contexto estático, entonces ¿cómo?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No puede definir interfaces dentro de los métodos.

Creo que el escenario al que se refiere el mensaje de error es definir una interfaz dentro de una clase interna (que se puede hacer, pero solo si es una clase interna static ):

 class A{ static class X{ interface Y{} } }
about 4 years ago · Santiago Trujillo Denunciar

0

Para la interfaz, tanto la interfaz anidada como la interfaz miembro son lo mismo (#opuesto a la clase miembro). Además, la interfaz de miembro es una interfaz que está DIRECTAMENTE encerrada por otra clase u otra interfaz. Por lo tanto, la interfaz local NO existe.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda