2011-11-22 24 views
13

estoy escribiendo una clase Java que está la implementación de una interfaz denominada Comando, que contiene los métodos isValid() y run(), de la siguiente manera:Java Eclipse @ Override error

public class DailyEnergy implements Command { 

    @Override 
    public boolean isValid(String command) { 
    return false; 
    } 

    @Override 
    public void run(String command) throws Exception { 
    } 
} 

y aquí está el archivo Command.java:

public interface Command { 

    public boolean isValid(String command); 
    public void run(String command) throws Exception; 
} 

Dentro de esta clase, estoy poniendo en práctica los métodos de superclase isValid() y run(), y quiero añadir la anotación @Override, pero Eclipse da un error que dice que "los métodos deben OVERRID e métodos de superclase ".

Incluso cuando saco los métodos y los importo automáticamente con Eclipse, si agrego la anotación, obtengo el error. Si alguien puede arrojar algo de luz sobre por qué no puedo usar la anotación @Override, sería muy apreciado.

+0

¿Puedes copiar y pegar tu código en la pregunta? –

Respuesta

46

La anotación @Override en implementaciones de interfaz es compatible desde Java-6. ¿Estás posiblemente en Java-5? Oracle has acknowledged un desastre en el Java 6 docs. Ha sido corrected in Java-7. Consulte el siguiente ejemplo:

Check compiler setting

+2

No, estoy usando java 6, no 5. – TNC

+5

Comprobaría una vez más que el proyecto y/o el Eclipse JDK predeterminado no están configurados en JDK 5. –

+0

Dios mío, tienes razón, ese era el problema. Supongo que Eclipse tiene un valor predeterminado de JDK 5, ya que nunca tuve instalado Java 5 en ningún momento ... Extraño, porque juré que nunca antes había tenido este problema. Pero de todos modos, ¡muchas gracias! – TNC

2

¿Utiliza JDK5? Como tengo en mente es que es un error en JDK5. @override no está permitido en la implementación de la interfaz en JDK5