Dans un billet précédent (Retour sur les apports de Tiger Java 5.0), les nouveautés importantes de Java 5.0 avaient été abordées. Dans celui-ci, c’est un autre aspect de Java Tiger qui va être introduit: les annotations. Si il y a plein une chose qui ne semble, et ce par expérience, être ancrée dans les habitudes de la plupart, ce sont les annotations. Tantôt vénérées, tantôt rejetées, elles divisent l’opinion.Petit retour en arrière pour rappeler qu’en-dehors des annotations, la version 5.0 de Java a apporté les types génériques, une nouvelle variante de la boucle for() ainsi que les énumérations.Mais qu’est-ce qu’une annotation? Une annotation est une sorte de meta-donnée, c’est-à-dire une donnée à propos d’une autre donnée. Dans ce cas-ci, la meta-donnée sert à ajouter de l’information à une partie spécifique du code afin d’obtenir une structure plus précise ainsi qu’un code plus propre par l’ajout d’informations. Ces informations (meta-données) servent à venir ajouter un contenu sémantique à des parties de code expliquant comme ces parties doivent être traitées. Ces parties peuvent être:
- des classes
- des méthodes
- des variables
- des paramètres
- des attributs
- des blocs
Ces informations sont disponibles au moment de l’éxécution au moyen de la réflexion. La réflexion est l’aptitude d’un programme à osculter son contenu et composants lors de son éxécution. Pour l’exemple, @Deprecated est une étiquette disponible dans JavaDoc afin de pouvoir déterminer si une méthode est obsoléte ou non. Cette étiquette n’est pas nouvelle pas plus que l’étiquette @Override qui permet de spécifier si une qu’une méthode en surchage une autre. Cela permet de remonter une erreur au cas où la super méthode n’est pas trouvée. Tout cela n’est pas nouveau, ce qui l’est c’est que l’on puisse définir ses propres types d’annotation. Il suffit de venir créer une interface définissant un type d’annotation:
public @interface MyAnnotation { }
Et de l’utiliser aussi simplement que cela:
@MyAnnotation
public void testAnnotation() { … }
D’autres types d’annotation existent par défaut dans Java dont @Inherited qui spécifit l’utilisation d’une annotation sur un élément et @Documented qui définit la disponibilité d’une documentation utilisable par JavaDoc.
Pour garder le suspens intacte, l’utilisation et l’exploitation des annotations personnalisées fera l’objet d’un autre article qui viendra bientôt. Stay tuned…
Liens externes





0 Réponses vers “Introduction aux annotations en Java”