7
votes

Méthode primordiale

Pouvez-vous remplacer la méthode en Java sans utiliser d'annotations? Étant donné que Eclipse ne le supporte pas si vous utilisez JRE6, vous devez revenir à 5 pour utiliser @override Annotation. Cette méthode sera-t-elle remplacée si je retire l'annotation? XXX


6 commentaires

"Eclipse ne le supporte pas si vous utilisez JRE6" - ce n'est pas vrai, qu'est-ce qui vous a donné cette idée?


@skaffman, c'est là que j'ai eu l'idée de i39.tinypic.com/dw5lj5.png


sourire - cela indique simplement que le niveau source actuel de votre projet est <1,5. Ce paramètre est assez indépendant de la JRE, vous pouvez réellement utiliser JRE 1.6 avec le niveau source 1.4 - et je suppose que c'est ce qui s'est passé.


@Andreas_d que puis-je faire pour le réparer?


Visitez Project / Propriétés globales (préférences?), Puis les paramètres de compilateur Java. Il existe certaines propriétés pour définir le niveau source (désolé, je n'ai pas l'éclipse ici en ce moment - mais vous devriez le trouver)


@Andreas_d Boom Boom Pow, GR8: DY


3 Réponses :


3
votes

@Override est juste un moyen de s'assurer que si vous modifiez le contrat (la méthode de remplacement de la méthode), cette méthode ne compilera pas. Sans cela, il sera considéré comme une fonctionnalité différente.

Quant au JRE6, je ne suis pas sûr de ce que vous voulez dire: les annotations sont prises en charge.

Essayez le JDK?


0 commentaires

8
votes

pouvez-vous remplacer la méthode en Java sans utiliser des annotations?

Oui, le @override L'annotation n'est pas requis pour remplacer une méthode.

juste par l'acte d'avoir une définition de méthode avec la même méthode signature d'une classe ancêtre suffise pour remplacer une méthode.

Le @override Annotation est juste un rappel au compilateur indiquant que la définition de la méthode est destinée à remplacer une méthode.

Si une méthode qui a un @override ne remplace pas réellement une méthode, le compilateur lancera une erreur de compilateur - l'annotation sert de vérification de la compilation supplémentaire pour voir si la définition de la méthode remplit effectivement une méthode.

Parce que Eclipse ne le supporte pas si Vous utilisez JRE6, vous devez revenir en arrière à 5 pour utiliser @override Annotation.

J'arrive à utiliser Eclipse ciblant Java 6 et je suis capable d'utiliser l'annotation @override , donc je ne suis pas tout à fait sûr de ce qui peut causer cela. Les annotations ont été prises en charge à partir de Java 5 et ont été plus étroitement intégrées dans la langue depuis Java 6.

Modifier

du commentaire d'Andreas_D à la question:

sourire - cela indique juste que le Niveau source actuel pour votre projet est <1.5. Ce réglage est joli Independant de la JRE, vous réellement peut utiliser JRE 1.6 avec la source niveau 1.4 - et je suppose que c'est quoi arrivé.

Ceci semble être un moyen d'une erreur de compilation peut se produire!

Le moyen de vérifier si le "niveau de conformité du compilateur" est défini sur quelque chose sous Java 5,

  1. aller aux propriétés du projet Java à Eclipse
  2. Ensuite, allez au menu compilateur Java
  3. Vérifiez que le niveau de conformité compilateur est défini sur 1,5 ou supérieur.

    Modifier

    En ce qui concerne la capture d'écran de Gandalf Stormlevrow, apparaît que le niveau de conformité du compilateur est inférieur à JDK 1.5. En cliquant sur la conformité du projet Modifier et JRE à 1,5 la solution rapide doit réparer la situation actuelle.

    Le problème est que des annotations ont été introduites dans Java 5.

    Il apparaît que le projet Java dans Eclipse est actuellement défini pour que le code source ne puisse contenir que des fonctionnalités introduites avant Java 5, refusant donc l'utilisation d'annotations.

    Le moyen de résoudre la situation est dites à Eclipse que les fonctionnalités de Java 5 peuvent être utilisées, en définissant le niveau de conformité du compilateur à 1,5 ou supérieur.


0 commentaires

0
votes

Vous n'avez pas besoin d'utiliser l'annotation @override . Cependant, si vous le faites et que la méthode ne parvient pas à remplacer une méthode dans une superclasse, le compilateur retourne une erreur.


0 commentaires