java - 'Dérogation à une méthode de superclasse' après l'importation d'un projet dans Eclipse




android override (11)

La correction doit surcharger une erreur de méthode de classe super n'est pas difficile, vous avez juste besoin de changer la version de source de Java à 1.6 parce que de Java 1.6 @Override l'annotation peut être employée avec la méthode d'interface. Afin de changer la version source en 1.6, suivez les étapes ci-dessous:

  1. Sélectionnez Projet, clic droit, Propriétés
  2. Sélectionnez Compilateur Java et cochez la case "Activer les paramètres spécifiques au projet"
  3. Maintenant, rendez le niveau de conformité du compilateur à 1,6
  4. Appliquer les modifications

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

Il peut être intéressant de mentionner que c'est avec des projets Android - pour une raison quelconque, les valeurs de l'argument de la méthode ne sont pas toujours remplies, donc je dois les 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 peuplé 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 qu'Eclipse recréer automatiquement la méthode, il utilise les mêmes noms d'arguments que j'avais déjà, donc je ne sais pas vraiment où est le problème, sinon il formate automatiquement la méthode pour moi.

Cela devient assez pénible d'avoir à recréer manuellement toutes mes méthodes surchargées à la main. Si quelqu'un peut expliquer pourquoi cela arrive ou comment y remédier .. Je serais très heureux.

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


Allez dans windows-> preferences -> Java -> compilateur -> Sélectionnez le niveau de conformité du compilateur à 1.6 (quelle version vous voulez) -> Apply-> ok. maintenant son travail.


La réponse de Paul a travaillé pour moi partiellement. J'avais toujours une erreur alors. Donc, en plus de cela, je devais aussi aller à Properties-> Project Facets et y définir la version Java de 1.5 à 1.6.

Peut-être que ça aide.


Avec Eclipse Galileo, allez dans l'élément de menu Eclipse -> Préférences, puis sélectionnez Java et le compilateur dans la boîte de dialogue.

Maintenant, il peut encore 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 au projet ... " et là, vous verrez que le projet est fixé à 1.5, maintenant changer à 1.6. Vous devrez le faire pour tous les projets concernés.

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


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 Java 1.5 ne peut être appliqué qu'aux méthodes remplaçant une méthode de superclasse).

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


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

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 avant. 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!


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


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


Dans le cas où cela arrive à quelqu'un d'autre qui a essayé à la fois alphazero et la méthode de Paul et ne fonctionnait toujours pas.

Pour moi, éclipse d'une certaine façon «mis en cache» les erreurs de compilation, même après avoir fait un projet> Clean ...

J'ai dû décocher Projet> Construire automatiquement, puis faire un Projet> Nettoyer, puis reconstruire.

De même, en cas de doute, essayez de redémarrer Eclipse . Cela peut corriger beaucoup d'erreurs maladroites et inexplicables.


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 que je mets à 1.6 cela ne fonctionne pas comme 'CACHE' cette erreur après nettoyer et reconstruire.

Essayez d'éteindre 'Construire automatiquement' comme Rollin_s dit -> erreur toujours là!

J'ai donc supprimé le projet de problème (déjà défini à 1.6) de l'Explorateur de packages et l'ai importé à nouveau -> il démarre une reconstruction et pas d'erreur cette fois

J'espère que cela aide quelqu'un


Ctrl + H est le meilleur moyen! N'oubliez pas de copier la chaîne avant de commencer à chercher!







java android eclipse override superclass