anotación @ Override en el JDK 1.6
-
26-09-2019 - |
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?
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
@Overidde trabaja en la implementación método ya que Java 1.6.
Recursos:
- foros de Sun Java - Programación - debe @Override aplicar a la adopción de la interfaz / métodos abstractos ?
- dertompson.com - cambios de especificación @ Override en Java 6
- El ex Weblog de Pedro AHE - @ Override bodrio
Sobre el mismo tema:
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.
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.