2010-09-17 9 views
34

J'ai un problème ennuyeux avec les annotations @Override dans Eclipse. Souvent, lorsque j'importe des projets en cours sur un nouveau PC, Eclipse indique que certaines des annotations @Override sont erronées. Si je supprime les annotations, tout va bien et Eclipse indique également que les méthodes remplacent les méthodes des parents mais que l'ajout de l'annotation Override provoque à nouveau l'erreur. Je travaille actuellement sur un projet Android, donc cela pourrait être un problème avec Android et non avec Eclipse.Bogue avec annulation d'annotations dans Eclipse

+0

duplication possible des erreurs ['Dérogation à une méthode de superclasse' après l'importation d'un projet dans Eclipse] (http://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing -a-project-into-eclipse) – cHao

+0

il pourrait aider à mentionner la question en double à http://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing-a-project- into-éclipse ... mais je ne sais pas comment le marquer comme tel –

Répondre

46

Ceci est probablement dû au fait que vous basculez entre Java 1.5 et Java 1.6. Dans 1.5, vous ne pouvez pas marquer les implémentations d'interface avec @Override, mais vous pouvez en 1.6.

Une recherche rapide sur Google tourné cette bonne explication de la différence de cette annotation entre les deux versions: http://www.techienuggets.com/CommentDetail?tx=38155

Sémantique de @Override est différent dans et JDK 1.5 JDK 1.6. Dans JDK 1.5, l'annotation @Override n'est pas autorisée pour les implémentations des méthodes déclarées dans une interface, alors qu'elles sont autorisées dans JDK 1.6. Pour de plus amples informations , voir:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5008260 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399361 http://blogs.oracle.com/ahe/?entry=override

Il est fait que la description de l'annotation Override n'a pas été mis à jour dans l'API docs JDK. Cela a été rapporté comme un bogue:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6501053bugdatabase/view_bug.do?bug_id=6501053

+0

Désolé, newb ici, que peut-on faire pour se débarrasser de ces erreurs? J'ai mis à jour mon niveau de conformité au code Java à 1,6 et je vois toujours l'erreur, peut-être que quelque chose d'autre est faux. –

3

Assurez-vous que le Java SDK utilisé est à jour et que l'éclipse utilise la bonne version du SDK (si vous avez plus de une installée) et traite votre projet Android avec la bonne version du SDK ...

21

juste aller à

window -> prefrences -> java -> compiler 

et placèrent à 1,6 que la notation commence de 1,6 si le niveau de compilence sera inférieure à 1.6, il sera donne une erreur

+0

M'a beaucoup aidé sur ADT17 –

6

Il existe quelques endroits où les paramètres du compilateur Java sont configurés. Un moyen est de Window->Preferences->Java->Compiler->Compiler Compliance Level -> set 1.6 or above. Une autre façon est un clic droit sur le Project->Properties->Java Compiler->JDK Compliance -> Select 1.6 or above.

Vous pouvez aussi désélectionner « Activer les paramètres spécifiques du projet », cela permettra d'éliminer les erreurs de conformité du compilateur futur JDK. Supprimer plusieurs instances de versions JDK, sauf si différents projets en ont besoin.

+0

Cela a résolu mon problème. Mes préférences Eclipse étaient à 1,6 et avaient toujours été, mais mon projet a été réduit à 1,5. – kjl