3 votes

Problèmes d'Eclipse '@Override' lors du passage de Mac à PC

Ok, je suis loin d'être un développeur expert, comme vous le découvrirez bientôt, mais j'ai eu cet étrange problème lorsque j'ai cloné du code sur mon PC. Je travaille sur une application Android et j'utilise un dépôt git sur bitbucket...mon problème est qu'une de mes classes implémente une interface avec plusieurs méthodes requises qui utilisent l'annotation @Override. Je travaille à la fois sur mac et sur pc et à chaque fois que je dois recloner mon espace de travail sur pc (ce qui est plus fréquent qu'on ne le pense), j'obtiens une erreur qui dit que les méthodes surchargées "doivent surcharger une méthode de la superclasse" et qui suggère que je les supprime. Pour moi, il s'agit bien de méthodes de substitution et cela fonctionne bien sur mon macbook, mais lorsque je passe sur mon PC, les annotations @Override doivent être supprimées à chaque fois pour qu'Eclipse n'ait pas d'états d'âme.

Quelqu'un sait-il pourquoi cela se produit ?

Si cela peut vous aider, l'interface que j'implémente est TextWatcher et les méthodes concernées sont 'afterTextChanged', 'beforeTextChanged' et 'onTextChanged'. Je ne sais pas si cela vous aide, mais je vous remercie d'avance pour votre aide.

3voto

keaton_fu Points 415

Je rencontre parfois ce problème au travail. Allez dans les propriétés du projet, puis dans Java Compiler et changez le niveau de conformité du compilateur en 1.6. C'est ce que j'ai fait.

Je pense que ce paramètre doit être spécifique à l'espace de travail car je n'arrive pas non plus à le sauvegarder dans le contrôle de la source.

EDIT : De plus, le menu contextuel Android pour un projet a "Fixer les propriétés du projet" qui pourrait aussi aider. Je ne sais pas avec certitude si cela permet d'effectuer la correction mentionnée ci-dessus, je n'utilise pas souvent cette option.

2voto

Bananeweizen Points 12524

Entre Java 5 et Java 6, des changements ont été apportés à la spécification de @Override. En Java 6, il est possible d'ajouter l'annotation @Override aux méthodes qui implémentent les méthodes d'une interface, ce qui n'est pas autorisé en Java 5.

Veuillez donc vérifier les paramètres du compilateur du projet, car vous compilez avec Java 1.5 sur une machine et avec Java 6 sur l'autre.

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