Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

246
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!