@Override erreur de compilation, la mise en œuvre d'une interface (eclipse jdk1.6.0_23 linux)
J'obtiens des erreurs de compilation dans eclipse lors de l'utilisation de l' @Override annotation pour une classe qui implémente une interface.
Compilateur niveau de conformité est défini à Java 6.0.
Je suis en utilisant la dernière version du jdk 6.0.
D'erreur:
"La méthode {methodname} de type {classname} doit remplacer une super-classe de la méthode"
Même code fonctionne très bien sur mac avec une configuration comparable.
public interface ChannelIF {
...
public boolean canSendNarrowcast();
public boolean canSendBroadcast();
}
public class FacebookChannel implements ChannelIF
{
...
@Override
public boolean canSendNarrowcast() { return true; }
@Override
public boolean canSendBroadcast() { return true; }
}
Quelle est l'erreur de compilation que vous obtenez?
Juste une supposition. Peut-être que vous avez vérifié seulement l'espace de travail du compilateur niveau de conformité (set de 6), mais que votre projet détermine ses propres à jdk5.
édité question d'inclure la chaîne d'erreur
Oledzki - bonne suggestion. ce projet est d'hériter de l'espace de travail par défaut (6)
Êtes-vous à l'aide d'eclipse 3.7 étape ou nightly build? Mai c'est une régression de la dernière éclipse.
Juste une supposition. Peut-être que vous avez vérifié seulement l'espace de travail du compilateur niveau de conformité (set de 6), mais que votre projet détermine ses propres à jdk5.
édité question d'inclure la chaîne d'erreur
Oledzki - bonne suggestion. ce projet est d'hériter de l'espace de travail par défaut (6)
Êtes-vous à l'aide d'eclipse 3.7 étape ou nightly build? Mai c'est une régression de la dernière éclipse.
OriginalL'auteur jsoc | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
Cette fonction n'est valide que dans Java 6 et plus. Je vois que vous sont à l'aide du jdk 1.6. Ce qui est bon. Cause Possible: Vous êtes à la compilation avec
-source 1.5
. Est-ce le cas? Si oui, pouvez-vous changer pour-source 1.6
?Pour Eclipse: bouton droit sur le projet -> Propriétés > un compilateur Java, puis configurez-le comme vous voulez
OriginalL'auteur Asaph
J'ai aussi face à problème et juste résolu.
Changement de "Compilateur niveau de conformité" pour de 1,6 dans Project->clic droit->propriétés->Java compilateur.
OriginalL'auteur CHowdappaM
Dans eslipse pouvez utiliser différentes versions de compilateurs.
Voir configuration d'eclipse Préférences->Java->Compiler "Compilateur niveau de conformité".
Vous devez choisir "1.6".
OriginalL'auteur splean
J'ai juste constaté que lors de l'utilisation de maven j'ai dû également modifier l'pom.xml pour le compilateur plugin. J'ai eu tous mes paramètres spécifiés correctement, mais j'avais besoin de celui-ci:
OriginalL'auteur Jaime Garza
Donc, j'ai continué à avoir ce problème, et après avoir traversé les solutions ci-dessus à quelques reprises, de voir que ma version de Java a été fixé à 1,7 tout le chemin vers le bas, et non pas à l'aide de Maven, et si juste de le quitter et redémarrer Eclipse une couple de fois que @jdowdell suggéré, après quoi, il semblerait que ce travail jusqu'à ce que la prochaine fois que j'ai mis en place l'un de ces. J'ai réalisé que lorsque je re-démarrage d'Eclipse, c'était m'invite à enregistrer mes fichiers et j'ai réalisé que mes interfaces n'avait pas été enregistré, de sorte que la méthode d'origine, celui-ci étant remplacé, n'existe pas sur le disque. Et c'est pourquoi quitter et redémarrer Eclipse résout le problème.
tl;dr : Vérifiez que tous vos fichiers sont enregistrés.
OriginalL'auteur Edub Kendo
Semble que votre méthode de signatures ne correspondent pas à. Ils doivent être les mêmes, y compris des choses telles que la levée checked exceptions. Poster votre code!
OriginalL'auteur Steven Schlansker
Vérification de la bibliothèque d'Exécution,
les paramètres du compilateur sont probablement différents
Clic droit sur le nom du projet, propriétés, Java Build Path, les Bibliothèques
Oeil à la version de JRE System Library, plus que probablement, il est fixé à 1,5 ou moins.
Sélectionnez JRE System library, puis cliquez sur supprimer
Cliquez sur Ajouter de la Bibliothèque, sélectionnez JRE System Library, à Côté
Alors, soit de l'espace de travail par Défaut, ou
OriginalL'auteur pjaol
J'ai eu ce même problème pendant environ une heure, et puis il semblait mystérieusement disparu de lui-même. Je voudrais savoir ce que j'ai fait. J'avais commencé avec l'espace de travail défini les paramètres pour la 1.6, sans le vouloir avoir des paramètres du projet fixée à 1,5 compatibilité. J'ai découvert ce et changé de projet, les paramètres du compilateur 1.6 qui a permis de corriger quelques erreurs, mais pas le @Override problème pour les interfaces. Une combinaison de fixes suivants:
Un camarade apparemment résolu la question par le biais de terminer la désinstallation et la réinstallation de toutes les applications java/eclipse composantes connexes: http://p2p.wrox.com/book-beginning-android-application-development/87299-override-errors-despite-1-6-a.html
OriginalL'auteur jdowdell