Pregunta

Estoy usando jdk1.6. Cuando implemente una interfaz y en la clase que implementa, si doy @override ante mis nombres de función, Eclipse genera un error de compilación. es decir, por debajo de código es incorrecto según Eclipse.

public class SomeListener implements ServletContextListener {
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
       // code
    }
    /* other overridden methods here */
}

Si quito anotación @Override, entonces el código se compila bien. ¿Quiere decir que jdk1.6 no nos obliga a anteponer la anotación @override más?

¿Fue útil?

Solución

Es probable que tenga que ajustar el nivel de cumplimiento del compilador en eclipse. Esto se puede encontrar en Ventanilla> Preferencias> Java> Compilador

Si las preferencias del compilador todavía se ponen a 1.5 el compilador vomitar en la anotación de anulación.

Editar:. También comprobar el nivel de cumplimiento del compilador en una base por proyecto si ha establecido los de cualquier otra cosa que por defecto

Otros consejos

La configuración de compilador Java puede estar en varios lugares en base a la configuración que elija, Una forma es Ventana-> Preferencias> Java> Compilador, cambio que a 1.6 mínimo, si se establece en alguna versión anterior. Otra forma es hacer clic derecho sobre Proyecto-> Propiedades -> Java Compiler -> JDK Cumplimiento -.> Seleccionar jdk1.6 mínimo, haga clic en Aplicar

Después de realizar los cambios, que el proyecto de construcción, se construye y tomar los cambios en el afecto.

Si ninguna de las opciones de trabajo por encima -. Trate de añadir el rt.jar a la ruta de clase, que se solucionará el problema

La anotación @ Override cambiado en Java versión 1.6. En Java 1.5, el compilador no permitió la anotación @ Override en los métodos de interfaz implementada, de 1,6 lo hace.

compilador de Java

Debe cambiar la versión del compilador Java en las propiedades del proyecto -> Java Compiler

jdk1.6 definitivamente lo soporta. No estoy seguro de por qué se tienen problemas.

¿Qué error que se está viendo? La única cosa que puedo pensar es para asegurarse de que está utilizando el JDK correcto en la configuración del proyecto. Quizás esté compilando contra de un mayor JDK?

No se la anotación @ Override se sigue utilizando. Usted debe verificar que el método contextDestroyed está realmente presente en la interfaz ServletContextListener, y comprobar el paquete importado para esta interfaz.

Parece que su compilador está configurado para Java 5, cuando no se le permitió @Override en las interfaces.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top