1304 votes

"Doit Remplacer une super-classe de la Méthode' Erreurs après l'importation d'un projet dans Eclipse

Chaque fois que je ré-importer mes projets dans Eclipse (si j'ai réinstallé Eclipse, ou changé l'emplacement des projets), presque toutes mes méthodes de remplacement ne sont pas correctement mis en forme, l'origine de l'erreur The method must override a superclass method.

Il peut être intéressant de mentionner c'est avec Android des projets - pour quelque raison que ce soit, l'argument de méthode les valeurs ne sont pas toujours peuplé, donc je dois remplir manuellement moi-même. Par exemple:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

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

});

sera initialement rempli comme ceci:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

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

});

La chose étrange est, si je supprime mon code, et ont Eclipse automatiquement recréer la méthode, il utilise le même argument des noms que j'ai déjà eu, donc je ne sais pas vraiment où est le problème, les autres, puis il s'est auto-formatage de la méthode pour moi.

Cela devient tout à fait une douleur d'avoir à les recréer manuellement TOUS mes méthodes de remplacement à la main. Si quelqu'un peut expliquer pourquoi ce qui se passe ou comment résoudre le problème .. je serais très heureux.

Peut-être que c'est dû à la façon dont je suis le formatage de la méthodes, qui sont à l'intérieur d'un argument d'une autre méthode?

1453voto

alphazero Points 17514

Eclipse est la valeur par défaut de Java 1.5 et vous avez cours de mise en œuvre de méthodes d'interface (ce qui, dans la version 1.6 de Java peut être annotée avec @Override, mais en Java 1.5 ne peut être appliqué qu'à des méthodes de remplacement d'une super-classe de la méthode).

Aller à votre projet/ide de vos préférences et le compilateur java niveau de 1,6 et aussi assurez-vous de sélectionner JRE 1.6 pour l'exécution de votre programme à partir d'eclipse.

307voto

Paul Points 3767

Avec Eclipse Galileo vous allez à Eclipse -> menu Préférences, puis sélectionnez Java et le Compilateur dans la boîte de dialogue.

Maintenant, il peut encore montrer compilateur niveau de conformité à la 1.6, mais vous voyez encore ce problème. Alors maintenant, sélectionnez le lien "Configurer les Paramètres Spécifiques d'un Projet..." et là vous verrez le projet est fixée à 1,5, maintenant changer en 1.6. Vous aurez besoin de faire cela pour tous les projets affectés.

Cette byzantine menu / interface de dialogue est typique de l'Éclipse de la mauvaise conception de l'INTERFACE utilisateur.

80voto

Rollin_s Points 1025

Dans le cas où cela arrive à quelqu'un d'autre qui a essayé les deux alphazero et Paul méthode et ne fonctionne toujours pas.

Pour moi, l'éclipse quelque sorte "en cache" les erreurs de compilation, même après avoir fait un Projet > Nettoyer...

J'ai dû décocher Projet > générer Automatiquement, puis faire un Projet > Nettoyer, puis de construire à nouveau.

Aussi, en cas de doute, essayez de redémarrer Eclipse. Cela peut arranger beaucoup de maladroit, inexplicable erreurs.

41voto

false9striker Points 702

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

14voto

will824 Points 735

Les gars dans mon cas, aucune des solutions ci-dessus a travaillé.

J'ai dû supprimer les fichiers à l'intérieur de l'espace de travail de Projet:

  • .projet
  • .classpath

Et le dossier:

  • .paramètres

Puis j'ai copié les de un projet similaire qui travaillait avant. Cet réussi à résoudre mon brisé projet.

Bien sûr, ne pas utiliser cette méthode avant d'essayer les variantes précédentes!.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X