7
votes

Eclipse ignorant les annotations @override incorrectes

Pour une raison quelconque, l'une de mes installations Eclipse ignorait incorrectement définir @override annotations. Par exemple, si je mettez @override sur une méthode qui n'est pas remplacée, cela l'ignore tout simplement.

Des idées sur la façon de le ramener dans un état où il affichera une erreur pour une méthode mal annotée?


1 commentaires

Êtes-vous sûr que Eclipse a déjà montré une erreur sur des annotations @Override extrêmes?


3 Réponses :


-1
votes

L'annotation @override a été introduite dans la JDK> 1.5.

Sur cette machine utiliseriez-vous une version plus ancienne de la JDK par hasard?


2 commentaires

Ce n'est pas manquant @override, c'est une excédente à exigences- @ Supprimer!


C'est le contraire de ce que je cherche. Il y a des annotations @Override qui sont déjà là quand elles ne devraient pas être et causer des erreurs de compilation



12
votes

La définition de @override a légèrement changé en Java 6 ( et malheureusement sans documentation appropriée ) dans laquelle un @override Annotation sur une méthode implémente une méthode d'interface est valide. Dans Java 5 qui a été considéré comme une erreur.


4 commentaires

Avez-vous une idée de la manière dont nous pouvons en faire un avertissement de compilateur en 1.6?


@Stephane: Vous ne pouvez pas. Si vous souhaitez un avertissement de compilateur pour cela, vous devez sélectionner la conformité 1.5.


C'est dommage parce que c'est l'une des annotations que j'ai vraiment profité.


@Stephane: Vous pouvez toujours le faire. Si vous compilez votre projet avec Java 5 (c'est-à-dire un niveau de compilateur à Java 5 à Eclipse), il aura toujours la sémantique Java 5. Une fois que vous devez passer à Java 6, vous devez toutefois envisager les modifications de la sémantique.



2
votes

Ma théorie est que votre Eclipse est configurée pour la conformité JDK 1.6, mais la construction de votre fourmi (ou autre) est compilée avec un compilateur JDK 1.5.

Il y avait un changement dans l'annotation @override entre JDK 1.5. et 1.6. Dans 1,5, il ne pouvait être utilisé que lorsqu'une méthode concrète remplace réellement une méthode concrète dans une superclasse. Dans JDK 1.6, il peut également être utilisé lorsque la méthode annotée implémente une méthode abstraite définie dans une interface ou une superclasse.

Le moyen de définir le niveau de conformité d'Eclipse est d'ouvrir Windows> Préférences, de sélectionner le volet Java> Compiler et de modifier le paramètre "Conformité de compilateur Java" sur 1.5. Ensuite, utilisez Appliquer ou OK pour appliquer le changement de préférence.

(Afaik, il n'ya aucun moyen d'obtenir Eclipse pour vous donner des avertissements de style 1.5 en mode de conformité 1.6)


0 commentaires