web-dev-qa-db-fra.com

Pourquoi Eclipse se plaint-il de @Override sur les méthodes d'interface?

J'ai un projet existant qui utilise @Override sur des méthodes qui surchargent les méthodes interface, plutôt que des méthodes de superclasse. Je ne peux pas modifier cela dans le code, mais je voudrais qu'Eclpse cesse de se plaindre de l'annotation, car je peux toujours construire avec Maven.

Comment pourrais-je m'y prendre pour désactiver cette erreur?

Remarque: En raison des exigences du projet, je dois compiler pour Java 1.5.

128
Stefan Kendall

L'utilisation de l'annotation @Override sur des méthodes qui implémentent celles déclarées par une interface est uniquement valide à partir de Java 6. C'est une erreur dans Java 5.

Assurez-vous que vos projets IDE sont configurés pour utiliser un JRE Java 6 et que la "compatibilité source" est définie sur 1.6 ou une version supérieure. Ouvrez la boîte de dialogue Fenêtre> Préférences et accédez à Java> Compilateur. Là, vous pouvez définir le "Niveau de conformité du compilateur" sur 1.6.

N'oubliez pas qu'Eclipse peut remplacer ces paramètres globaux pour un projet spécifique, vérifiez-les également. 


Mettre à jour:

L'erreur sous Java 5 ne concerne pas uniquement Eclipse; Si vous utilisez javac directement à partir de la ligne de commande, vous obtiendrez la même erreur. Ce n'est pas un code source Java 5 valide.

Toutefois, vous pouvez spécifier l'option -target 1.5 dans la variable javac du JDK 6, qui générera un fichier de classe de version Java 5 à partir du code source Java 6. 

262
erickson

Projet-> Propriétés-> Compilateur Java->

Activer les paramètres spécifiques au projet -yes Conformité du compilateur - 1.6 Fichiers de classe générés et compatibilité de la source - 1.5

37
mitko

Vérifiez également si le projet a une facette. La version Java peut être remplacée ici.

11
gdoumenc

Les paramètres spécifiques du projet peuvent être activés. Sélectionnez votre projet Project > Properties > Java Compiler, uncheck le Enable project specific settings ou changez Jdk 1.6 et plus en gardant la JRE correspondante. 
Si cela ne fonctionne pas, supprimez votre projet d’Eclipse, supprimez les fichiers .settings folders, .project, .classpath. clean and build the project, import it back into Eclipse and then reset your Java compiler. Clean and build your projectet Eclipse. Ça a fonctionné pour moi

8
Henry

Vous pouvez modifier les paramètres du compilateur pour accepter la syntaxe Java 6 mais générer une sortie Java 5 (si je me souviens bien). Et définissez la "Compatibilité des fichiers de classe générés" un peu plus bas si votre runtime le nécessite . Update : J'ai vérifié Eclipse, mais je me plains si je règle la compatibilité de source à 1.6 et la compatibilité de classe à 1.5. Si 1.6 n'est pas autorisé, je commente généralement manuellement les annotations @Override incriminées dans le source (ce qui n'aide pas votre cas).

Update2: Si vous ne construisez que manuellement, vous pouvez écrire un petit programme qui copie le projet original dans un nouveau projet, supprime les annotations @Override des sources Java et vous cliquez simplement sur Nettoyer le projet dans Eclipse.

7
akarnokd

Vous pouvez également essayer Retro Weaver pour créer la version Java à partir de classes Java 6.

1
mie

Utilisez Eclipse pour rechercher et remplacer (supprimer) toutes les instances de "@Override". Ajoutez ensuite les modifications non liées à l'interface à l'aide de "Nettoyer".

Pas:

  1. Sélectionnez les projets ou les dossiers contenant vos fichiers source.
  2. Allez à "Search> Search ..." (Ctrl-H) pour ouvrir la boîte de dialogue Rechercher.
  3. Allez dans l'onglet "Recherche de fichier".
  4. Entrez "@Override" dans "Contenant du texte" et "*. Java" dans "Modèles de noms de fichiers". Cliquez sur "Remplacer ...", puis sur "OK" pour supprimer toutes les instances de "@Override".
  5. Allez dans "Fenêtre> Préférences> Java> Code Style> Nettoyer" et créez un nouveau profil.
  6. Modifiez le profil et décochez toutes les options sauf "Code manquant> Ajouter des annotations manquantes> @Override". Assurez-vous que l'option "Implémentations des méthodes d'interface" est désactivée.
  7. Sélectionnez les projets ou les dossiers contenant vos fichiers source.
  8. Sélectionnez "Source> Nettoyer ..." (Alt + Maj + s, puis u), puis "Terminer" pour rétablir les remplacements non liés à l'interface.
1
Peter Tseng

En configurant le fait que les projets IDE sont configurés pour utiliser un JRE Java 6 ou version ultérieure, il est parfois impossible de supprimer l'erreur Eclipse. Pour moi, un restart de Eclipe IDE m'a aidé.

0
IstaLibera

Même après avoir modifié le paramètre de conformité du compilateur sur 1.6 ou 1.7, à partir de onglet Windows, puis prefernces, puis Java, puis le compilateur et la définition du fichier conformité du compilateur, j'avais toujours ce problème. L'idée est que nous besoin d'aller dans le dossier du projet, clic droit, Java et définir le compilateur conformité à 1,6 ou plus. Cela a fonctionné pour moi.

0
Ranjan

Je comprends votre problème, changez votre jdk de votre jdk à plus de 1,5

0
Ravi Kumar Ravanam