web-dev-qa-db-fra.com

Erreurs 'Doit remplacer une méthode de superclasse' après l'importation d'un projet dans Eclipse

Chaque fois que je dois réimporter mes projets dans Eclipse (si j'ai réinstallé Eclipse ou modifié l'emplacement des projets), presque toutes mes méthodes surchargées ne sont pas correctement formatées, ce qui a provoqué l'erreur:

La méthode doit remplacer une méthode superclass

Il peut être intéressant de mentionner qu'il s'agit de Android projets - pour une raison quelconque, les valeurs d'argument de méthode ne sont pas toujours renseignées; je dois donc les renseigner moi-même manuellement. Par exemple:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

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

});

sera initialement peuplé comme ceci:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

Ce qui est étrange, c’est que si je supprime mon code et que Eclipse recrée automatiquement la méthode, elle utilise les mêmes noms d’arguments que ceux que j’avais déjà. Je ne sais donc pas vraiment où se trouve le problème. moi.

Cela devient assez pénible de devoir recréer manuellement TOUTES mes méthodes remplacées. Si quelqu'un peut expliquer pourquoi cela se produit ou comment y remédier, je serais très heureux.

Peut-être est-ce dû à la façon dont je formate les méthodes, qui sont à l'intérieur d'un argument d'une autre méthode?

1216
Tim H

Eclipse utilise par défaut Java 1.5 et vous avez des classes implémentant des méthodes d'interface (qui, dans Java 1.6, peuvent être annotées avec @Override, mais dans Java 1.5 s’applique uniquement aux méthodes remplaçant une méthode superclasse).

Accédez à vos préférences de projet/IDE et définissez le niveau de compilateur Java sur 1.6. Assurez-vous également de sélectionner JRE 1.6 pour exécuter votre programme à partir d'Eclipse.

1414
alphazero

Avec Eclipse Galileo, accédez à l’option de menu Eclipse -> Préférences, puis sélectionnez Java et Compilateur dans la boîte de dialogue.

Maintenant, il peut toujours afficher le niveau de conformité du compilateur à 1.6, mais vous voyez toujours ce problème. Alors maintenant, sélectionnez le lien " Configurer les paramètres spécifiques du projet ... " et vous verrez que le projet est défini sur 1.5, modifiez-le en 1.6. Vous devrez le faire pour tous les projets concernés.

Cette interface menu/dialogue byzantine est typique de la piètre conception de l'interface utilisateur d'Eclipse.

306
Paul

Au cas où cela arriverait à quelqu'un d'autre qui a essayé à la fois la méthode alphazero et la méthode de Paul et qui n'a toujours pas fonctionné.

Pour moi, Eclipse a en quelque sorte "mis en cache" les erreurs de compilation même après avoir effectué un projet> Nettoyer ...

Je devais décocher Projet> Construire automatiquement, puis faire un projet> Nettoyer, puis compiler à nouveau.

En cas de doute, essayez de redémarrer Eclipse. Cela peut corriger beaucoup d'erreurs maladroites et inexplicables.

76
Rollin_s

Pour résoudre ce problème, accédez à vos propriétés de projet -> Java compilateur -> Sélectionnez le niveau de conformité du compilateur à 1.6-> Appliquer.

41
false9striker

La réponse de Paul a fonctionné partiellement pour moi. J'ai encore eu une erreur alors. Donc, en plus de cela, je devais aussi aller dans Propriétés-> Facettes du projet et y définir la version Java de 1.5 à 1.6.

Peut-être que ça aide.

21
ulrich

Les gars dans mon cas, aucune des solutions ci-dessus n'a fonctionné.

J'ai dû supprimer les fichiers dans l'espace de travail du projet:

  • .projet
  • .classpath

Et le dossier:

  • .paramètres

Ensuite, j'ai copié ceux d'un projet similaire qui fonctionnait auparavant. Cela a réussi à réparer mon projet cassé.

Bien sûr, n'utilisez pas cette méthode avant d'essayer les alternatives précédentes !.

13
will824

Si rien de ce qui précède n’aide, assurez-vous que vous avez sélectionné "Environnement d’exécution" et que ne soit pas un "JRE alternatif". ".

Se trouve sous:

Projet -> Chemin de construction -> Bibliothèques

Sélectionnez le JRE System Library et cliquez sur Edit....

Si "Alterner JRE ..." est sélectionné, remplacez-le par un "Environnement d'exécution" approprié, tel que JavaSE-1.8 (jre1.8.0_60). Aucune idée pourquoi, mais cela va le résoudre.

12
Blauhirn

C'est la deuxième fois que je rencontre ce problème. première fois selon la recommandation de l'alphazero cela a fonctionné. mais dans la deuxième fois, j'ai mis à 1.6 cela ne fonctionne pas, il ressemble à "CACHE" cette erreur après nettoyer et reconstruire.

Essayez de désactiver 'Construire automatiquement' comme dit Rollin_s -> erreur toujours ici!

J'ai donc supprimé le projet problématique (déjà défini sur 1.6) de l'Explorateur de packages et l'important à nouveau -> il lance une reconstruction et aucune erreur cette fois

J'espère que cela aidera quelqu'un

10
ob.yann

La correction doit remplacer une erreur de méthode de classe super n'est pas difficile, il vous suffit de changer la version source de Java à 1.6 car à partir de Java 1.6, l'annotation @Override peut être utilisée avec la méthode d'interface. Afin de changer la version source en 1.6, suivez les étapes ci-dessous:

  1. Sélectionner un projet, clic droit, Propriétés
  2. Sélectionnez Java Compiler et cochez la case "Activer les paramètres spécifiques au projet".
  3. Maintenant, mettez le niveau de conformité du compilateur à 1.6
  4. Appliquer les modifications
9
Sunil

Dans mon cas, ce problème est survenu lorsque j'ai importé un projet Maven dans Eclipse. Pour résoudre ce problème, j'ai ajouté ce qui suit dans pom.xml:

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

Ensuite, dans le menu contextuel du projet, allez à "Maven -> Mettre à jour le projet ...", puis appuyez sur OK.

C'est ça. J'espère que cela t'aides.

6
mljrg

Dans mon cas, aucune des solutions ci-dessus ne fonctionne. Je dois extraire mon code source dans un autre dossier. Dans Eclipse, sélectionnez Fichier> Basculer les espaces de travail> Autre ..., puis importez le code dans les nouveaux espaces de travail. ça marche après ça.

5
Hắc Huyền Minh

Cela se produit lorsque votre projet maven utilise un niveau de conformité du compilateur différent et que Eclipse IDE utilise un niveau de conformité du compilateur différent. Afin de résoudre ce problème, nous devons modifier le niveau de conformité du compilateur du projet Maven au niveau utilisé par IDE.

1) Pour voir Java le niveau de conformité du compilateur utilisé dans Eclipse IDE

*) Fenêtre -> Préférences -> Compilateur -> Niveau de conformité du compilateur: 1.8 (ou 1.7, 1.6 , etc.)

2) Modifier le niveau de conformité du compilateur Java du projet Maven

*) Allez dans "Projet" -> "Propriétés" -> Sélectionnez "Compilateur Java" -> Modifiez le niveau de conformité du compilateur: 1.8 (ou 1.7, 1.6, etc.).

0
HashanR