Errores 'Debe anular un método de superclase' después de importar un proyecto en Eclipse

Cada vez que tengo que volver a importar mis proyectos a Eclipse (si reinstalé Eclipse o cambié la ubicación de los proyectos), casi todos de mis métodos anulados no están formateados correctamente, lo que provoca el error:

El método debe anular un método de superclase

Puede ser digno de mención mencionar que esto es con proyectos de Android por cualquier motivo, los valores de los argumentos del método no siempre se completan, por lo que tengo que completarlos manualmente yo mismo. Por ejemplo:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

inicialmente se poblará 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 argumento que ya tenía, por lo que realmente no sé dónde está el problema, aparte de que formatea automáticamente el método para me.

Esto se vuelve bastante doloroso 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?

preguntado el 05 de noviembre de 09 a las 00:11

Marque este elemento, explica el uso de anulación. Creo que esta práctica es muy importante para todo, no solo para esta situación en particular. stackoverflow.com/questions/94361/… -

13 Respuestas

Eclipse tiene como valor predeterminado Java 1.5 y tiene clases que implementan métodos de interfaz (que en Java 1.6 se pueden anotar con @Override, pero en Java 1.5 solo se puede aplicar a métodos que anulan un método de superclase).

Vaya a las preferencias de su proyecto / IDE y establezca 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.

Respondido el 06 de Septiembre de 17 a las 12:09

Mi proyecto estaba configurado en 1.6, así que tomé las estrellas y lo configuré en 1.5, lo reconstruí y luego volví a 1.6. Milagrosamente, esto resolvió mi problema. ¡Gracias por señalarme en la dirección correcta! - miguel krauklis

teniendo el mismo problema ... intenté la sugerencia dada en esta respuesta pero aún no tuvo éxito. :( :( - aditya_gaur

@MichaelKrauklis Soy 1.6 y tengo este problema. Lo puse en 1.5 y lo limpié y lo volví a establecer en 1.6 y lo limpié de nuevo. Aún no resuelto. ¿Algunas ideas? - marcapasos

El mismo problema aquí, en mi caso, no había instalado JDK 1.6, solo el último 1.7, que aparentemente no funciona con Android. Instalar el 1.6 anterior y luego seguir estas instrucciones debería funcionar :) - Sin errores

Debe mencionarse (como en los comentarios de las otras respuestas) a menudo se requiere una compilación limpia seguida de un reinicio. - gsingh2011

Con Eclipse de 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 cámbielo a 1.6. Deberá hacer esto para todos los proyectos afectados.

Esta interfaz bizantina de menú / diálogo es típica del pobre diseño de interfaz de usuario de Eclipse.

Respondido el 08 de Septiembre de 10 a las 04:09

En caso de que esto le suceda a cualquier otra persona que haya probado tanto el método alphazero como el de 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 construir.

Además, en caso de duda, intente reiniciar Eclipse. Esto puede corregir muchos errores incómodos e inexplicables.

Respondido 22 Feb 13, 20:02

No solo hice eso, sino que desmarqué "Iniciar una compilación automáticamente" en el cuadro de diálogo Limpiar. Solo entonces funcionó para mí. - wilerson

También tuve que reiniciar eclipse, incluso después de eliminar los errores. - david cameron

Para resolver este problema, vaya a las propiedades de su proyecto -> compilador de Java -> Seleccione el nivel de cumplimiento del compilador en 1.6-> Aplicar.

Respondido 21 Jul 12, 16:07

La respuesta de Paul me funcionó parcialmente. Entonces todavía tenía un error. Entonces, además de eso, también tuve que ir a Propiedades-> Facetas del proyecto y allí configuré la versión de Java de 1.5 a 1.6.

Quizás eso ayude.

Respondido 05 Feb 14, 16:02

Chicos, en mi caso, ninguna de las soluciones anteriores funcionó.

Tuve que eliminar los archivos dentro del espacio de trabajo del proyecto:

  • .proyecto
  • .ruta de clases

Y la carpeta:

  • .ajustes

Luego copié los de un proyecto similar que estaba funcionando antes. Esto logró arreglar mi proyecto roto.

¡Por supuesto que no uses este método antes de probar las alternativas anteriores !.

Respondido el 28 de diciembre de 11 a las 20:12

Si nada de lo anterior ayuda, asegúrese de tener un "Entorno de ejecución"seleccionado, y no un "JRE alternativo".

Se encuentra en:

Proyecto -> Ruta de construcción -> Bibliotecas

Seleccione la pestaña JRE System Library y haga clic Edit....

Si se selecciona "JRE alternativo ...", cámbielo a un "Entorno de ejecución" adecuado como JavaSE-1.8 (jre1.8.0_60). No tengo idea de por qué, pero esto lo resolverá.

Respondido el 04 de Septiembre de 15 a las 22:09

Seleccioné un "Entorno de ejecución", luego presioné OK y el error desapareció. Luego volví a este mismo cuadro de diálogo y seleccioné "Workspace default JRE (...)", que era mi selección anterior cuando recibía el error de Eclipse, luego presioné OK, ¿y el error no sucedió?!? Esto debe ser un error de interfaz de usuario de Eclipse o algo así (estoy en Eclipse Neon 4.6.2) - mljrg

Esta es la segunda vez que encuentro este problema. La primera vez, de acuerdo con la recomendación de alphazero, funcionó. pero en la segunda vez que lo configuré en 1.6, no funciona como 'CACHE' este error después de limpiar y reconstruir.

Intente desactivar 'Construir automáticamente' como dijo Rollin_s -> ¡el error todavía está aquí!

Así que eliminé el proyecto problemático (ya configurado 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

Respondido el 14 de diciembre de 12 a las 06:12

En mi caso, este problema ocurrió cuando importé un proyecto de Maven a Eclipse. Para resolver esto, agregué lo siguiente en pom.xml:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Luego, en el menú contextual del proyecto, vaya a "Maven -> Actualizar proyecto ..." y presione Aceptar.

Eso es. Espero que esto ayude.

Respondido 22 Feb 17, 18:02

Gracias, supongo que esto anula la configuración de pom principal o algo así. (Agregué el problema al revés, no hay problema de eclipse, pero el compilador de Maven me arrojó "debe anular, etc.") - Asoub

La corrección debe anular un error de método de superclase no es difícil, solo necesita cambiar la versión fuente de Java a 1.6 porque desde Java 1.6 la anotación @Override se puede usar junto con el método de interfaz. Para cambiar la versión de origen a 1.6, siga los pasos a continuación:

  1. Seleccione Proyecto, haga clic con el botón derecho, Propiedades
  2. Seleccione Java Compiler y marque la casilla de verificación "Habilitar configuración específica del proyecto".
  3. Ahora haga que el nivel de cumplimiento del compilador sea 1.6
  4. Aplicar los cambios

Respondido 21 Abr '15, 07:04

En mi caso, ninguna de las soluciones anteriores funciona. Tengo que transferir 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.

Respondido el 16 de junio de 13 a las 05:06

Esto sucede cuando su proyecto maven usa un nivel de cumplimiento de compilador diferente y Eclipse IDE usa un nivel de cumplimiento de compilador diferente. Para solucionar este problema, debemos cambiar el nivel de cumplimiento del compilador del proyecto Maven al nivel que usa el IDE.

1) Para ver los usos del 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 de Java del proyecto Maven

*) Vaya a "Proyecto" -> "Propiedades" -> Seleccione "Compilador Java" -> Cambiar el nivel de cumplimiento del compilador: 1.8 (o 1.7, 1.6 ,, ect)

Respondido el 21 de diciembre de 18 a las 18:12

Es 2020 -

Proyecto> Clic derecho> Compilador de Java> Nivel de cumplimiento del compilador> Cambie esto a 1.8 [o al último nivel]

enter image description here

Respondido 29 ago 20, 15:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.