Cada vez que tengo que volver a importar mis proyectos en Eclipse (si reinstalé Eclipse o cambié la ubicación de los proyectos), casi todos mis métodos anulados no están formateados correctamente, lo que causa el error:
El método debe anular un método de superclase
Cabe mencionar que esto es con proyectos de Android por cualquier razón, los valores del argumento del método no siempre se rellenan, por lo que tengo que rellenarlos manualmente. Por ejemplo:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct names
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
}
});
inicialmente se completará así:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically provided
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
}
});
Lo extraño es que, si elimino mi código y hago que Eclipse vuelva a crear automáticamente el método, usa los mismos nombres de argumentos que ya tenía, por lo que no sé realmente dónde está el problema, aparte de que formatea automáticamente el método para yo.
Esto se convierte en un problema tener que recrear manualmente TODOS mis métodos anulados a mano. Si alguien puede explicar por qué sucede esto o cómo solucionarlo. Yo seria muy feliz.
¿Tal vez se deba a la forma en que estoy formateando los métodos, que están dentro de un argumento de otro método?
fuente
Respuestas:
Eclipse está predeterminado en Java 1.5 y tiene clases que implementan métodos de interfaz (que en Java 1.6 se pueden anotar
@Override
, pero en Java 1.5 solo se pueden aplicar a métodos que anulan un método de superclase).Vaya a sus preferencias de proyecto / IDE y configure el nivel del compilador de Java en 1.6 y también asegúrese de seleccionar JRE 1.6 para ejecutar su programa desde Eclipse.
fuente
Con Eclipse Galileo , vaya a Eclipse -> elemento de menú Preferencias, luego seleccione Java y Compilador en el cuadro de diálogo.
Ahora todavía puede mostrar el nivel de cumplimiento del compilador en 1.6, pero aún ve este problema. Así que ahora seleccione el enlace " Configurar ajustes específicos del proyecto ... " y allí verá que el proyecto está configurado en 1.5, ahora cambie esto a 1.6. Deberá hacer esto para todos los proyectos afectados.
Esta interfaz de menú / diálogo bizantina es típica del pobre diseño de la interfaz de usuario de Eclipse.
fuente
En caso de que esto le ocurra a cualquiera que haya probado el método alphazero y Paul y aún no haya funcionado.
Para mí, eclipse de alguna manera 'almacenó en caché' los errores de compilación incluso después de hacer un Proyecto> Limpiar ...
Tuve que desmarcar Proyecto> Construir automáticamente, luego hacer un Proyecto> Limpiar y luego volver a compilar.
Además, en caso de duda, intente reiniciar Eclipse . Esto puede solucionar muchos errores incómodos e inexplicables.
fuente
Para resolver este problema, vaya a las propiedades de su Proyecto -> Compilador Java -> Seleccione el nivel de cumplimiento del compilador a 1.6-> Aplicar.
fuente
La respuesta de Paul funcionó para mí parcialmente. Todavía tenía un error entonces. Entonces, además de eso, también tuve que ir a Propiedades-> Facetas del proyecto y configurar la versión de Java de 1.5 a 1.6.
Quizás eso ayude.
fuente
Chicos en mi caso ninguna de las soluciones anteriores funcionó.
Tuve que eliminar los archivos dentro del espacio de trabajo del Proyecto:
Y la carpeta:
Luego copié los de un proyecto similar que estaba funcionando antes. Esto logró arreglar mi proyecto roto.
¡Por supuesto, no use este método antes de probar las alternativas anteriores !.
fuente
Si nada de lo anterior ayuda, asegúrese de tener seleccionado un " Entorno de ejecución " adecuado y no un "JRE alternativo".
Se encuentra en:
Seleccione
JRE System Library
y haga clicEdit...
.Si se selecciona "JRE alternativo ...", cámbielo a un "Entorno de ejecución" apropiado como
JavaSE-1.8 (jre1.8.0_60)
. No tengo idea de por qué, pero esto lo resolverá.fuente
Esta es la segunda vez que encuentro este problema. primera vez según la recomendación de alphazero funcionó. pero en la segunda vez que configuré 1.6 no funciona como 'CACHE' este error después de limpiar y reconstruir.
Intente desactivar 'Construir automáticamente' como dijo Rollin_s -> error todavía aquí!
Así que eliminé el proyecto problemático (ya establecido en 1.6) del Explorador de paquetes y lo importé nuevamente -> comienza una reconstrucción y no hay error esta vez
Espero que esto ayude a alguien
fuente
La corrección debe anular un error de método de superclase no es difícil, solo necesita cambiar la versión de origen de Java a 1.6 porque desde Java 1.6 se puede usar la anotación @Override junto con el método de interfaz. Para cambiar la versión de origen a 1.6, siga los pasos a continuación:
fuente
En mi caso, este problema ocurrió cuando importé un proyecto Maven a Eclipse. Para resolver esto, agregué lo siguiente en
pom.xml
:Luego, en el menú contextual del proyecto, vaya a "Maven -> Actualizar proyecto ..." y presione OK.
Eso es. Espero que esto ayude.
fuente
En mi caso, ninguna de las soluciones anteriores funciona. Tengo que retirar mi código fuente a otra carpeta. Desde eclipse, seleccione Archivo> Cambiar espacios de trabajo> Otro ... y luego importe el código a los nuevos espacios de trabajo. Funciona después de eso.
fuente
Esto sucede cuando su proyecto maven usa un nivel de cumplimiento del compilador diferente y Eclipse IDE usa un nivel de cumplimiento del compilador diferente. Para solucionar esto, necesitamos cambiar el nivel de cumplimiento del compilador del proyecto Maven al nivel que utiliza IDE.
1) Para ver los usos de nivel de cumplimiento del compilador de Java en Eclipse IDE
*) Ventana -> Preferencias -> Compilador -> Nivel de cumplimiento del compilador: 1.8 (o 1.7, 1.6 ,, ect)
2) Para cambiar el nivel de cumplimiento del compilador Java del proyecto Maven
*) Vaya a "Proyecto" -> "Propiedades" -> Seleccione "Compilador Java" -> Cambie el nivel de cumplimiento del compilador: 1.8 (o 1.7, 1.6, etc.)
fuente