Annotation @override dans JDK 1.6
Je suis en utilisant le JDK1.6. Quand j'ai implémenter une interface et dans la mise en œuvre de la classe, si je donne @override
avant mes noms de fonction, Eclipse génère une erreur de compilation. c'est à dire en dessous de code n'est pas correct selon Eclipse.
public class SomeListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
//code
}
/* other overridden methods here */
}
Si je supprime @Override
annotation, le code compile bien. Ça veut dire que JDK1.6 ne nécessite pas de préfixe de la @override
annotation plus?
source d'informationauteur Veera
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement besoin de définir le compilateur niveau de conformité dans eclipse. Cela peut être trouvé dans Window->Préférences->Java->Compilateur
Si le compilateur préférences sont toujours fixée à 1,5 le compilateur barf sur le remplacement d'annotation.
Edit: Aussi vérifier compilateur niveau de conformité sur une base par projet, si vous avez défini ceux à quoi que ce soit d'autre que par défaut.
@Overidde travaux sur la méthode de la mise en œuvre depuis la version 1.6 de java.
Ressources :
Sur le même sujet :
Le Compilateur Java paramètres peuvent être à plusieurs endroits en fonction de la configuration que Vous choisissez,
Une façon est de Fenêtre->Préférences->Java->Compilateur, un changement de 1.6 minimum, si elle a été fixée à une version antérieure.
Une autre façon est de Cliquer Droit sur le Projet-> Propriétés ->Java Compiler ->JDK Conformité ->Sélectionnez JDK1.6 minimum, cliquez sur appliquer.
Après avoir apporté les modifications, laissez-le projet de construction, de la génération et de prendre les modifications en vigueur.
Si aucune des options ci-dessus au travail, Essayez d'ajouter la rt.jar pour classpath, il va corriger le problème.
L' @Override annotation changé dans la version 1.6 de Java version.
Dans Java 1.5, le compilateur ne permet pas @Override annotation sur la mise en œuvre de méthodes d'interface, à partir de 1.6, il n'.
Vous devez changer de compilateur java version dans les propriétés du projet -> Java Compilateur
JDK1.6 définitivement la prend en charge. Je ne suis pas sûr de pourquoi vous avez des questions.
Quelle erreur avez-vous observé? La seule chose que je peux penser à est de s'assurer que vous utilisez le bon JDK dans les paramètres de votre projet. Peut-être que vous compilez à partir d'un ancien JDK?
Pas le @Override annotation est encore utilisé. Vous devez vérifier que le
contextDestroyed
méthode est réellement présent dans laServletContextListener
interface, et de vérifier le package importé pour cette interface.Il semble que votre compilateur est défini pour Java 5, lorsque
@Override
sur les interfaces n'était pas autorisé.