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

Resuelto Tim H asked hace 54 años • 13 respuestas

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 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 ocurre 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 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, utiliza 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 a mí.

Esto se vuelve bastante complicado tener que recrear manualmente TODOS mis métodos anulados. Si alguien puede explicar por qué sucede esto o cómo solucionarlo. Yo seria muy feliz.

¿Quizás se deba a la forma en que estoy formateando los métodos, que están dentro de un argumento de otro método?

Tim H avatar Jan 01 '70 08:01 Tim H
Aceptado

Eclipse utiliza de forma predeterminada 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 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.

alphazero avatar Nov 05 '2009 03:11 alphazero

Con Eclipse Galileo, vaya al elemento de menú Eclipse -> Preferencias y 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 ves 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 mal diseño de la interfaz de usuario de Eclipse.

Paul avatar Sep 08 '2010 03:09 Paul

En caso de que esto le pase a alguien más que haya probado tanto el método alphazero como el de Paul y aún así no haya funcionado.

Para mí, eclipse de alguna manera 'almacenó en caché' los errores de compilación incluso después de hacer Proyecto > Limpiar...

Tuve que desmarcar Proyecto > Construir automáticamente, luego hacer Proyecto > Limpiar y luego compilar nuevamente.

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

Rollin_s avatar Jan 26 '2011 17:01 Rollin_s

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

Venugopal Madathil avatar Dec 26 '2011 09:12 Venugopal Madathil

La respuesta de Paul funcionó para mí 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í configurar la versión de Java de 1.5 a 1.6.

Quizás eso ayude.

ulrich avatar Feb 05 '2014 16:02 ulrich