Access Keys:
Skip to content (Access Key - 0)

Cette page présente les Annotations Java, leur fonctionnement, leur utilisation et leur implémentation.

1. Présentation générale des annotations :

Les annotations ont été introduites avec le Java 5. Elles apportent un système robuste et flexible de meta-programmation.
Java SE propose peu d'annotations ( @Deprecated, @Override, @SuppressWarnings). En revanche, de nombreux frameworks (Spring, Hibernate, JPA, ...) fournissent en un nombre important.
Pour une utilisation avancée de l'annotation SuppressWarnings, consulter l'article suivant : Utilisation avancée de l'annotation SuppressWarnings

2. Pourquoi utiliser les annotations ?

  • remplacer ou compléter des fichiers de configuration XML nombreux et verbeux,
  • simplifier ou générer du code,
  • appliquer des règles de compilations supplémentaires par l'utilisation des Annotation Processors

3. Quels éléments peuvent être annotés ?

  • Classes, interfaces et enums
  • Attributs, constructeurs et méthodes de classes
  • Paramètres des constructeurs et des méthodes
  • Variables locales
  • Packages
  • Annotations

4. Exemple d'utilisation d'annotation :

Hormis l'annotation de package, annoter un élément se fait très simplement de la façon suivante :

5. Comment utiliser une annotation sur un package ?

L'annotation de package est beaucoup moins intuitive. Pour cela, il faut créer un fichier package-info.java dans lequel figure la déclaration du package, la déclaration de la Javadoc et les annotations appliquée sur ce package.

6. Utilisation des annotations :

Les annotations peuvent prendre des paramètres qui peuvent être obligatoires ou facultatifs. Lorsqu'un paramètre est facultatif, alors il prend la valeur par défaut spécifiée dans la déclaration de l'annotation. Les paramètres se précisent entre parenthèses. Leur ordre n'a aucune importance. Les valeurs des paramètres doivent être constantes à l’exécution ("compile-time contants") et ne peuvent être null. Voici un exemple d'utilisation :

Il est souvent possible de simplifier cette écriture lorsque l'annotation ne prend qu'un seul paramètre. L'écriture peut alors prendre la forme suivante :

Il est à noter que l'on ne peut annoter plusieurs fois un élément. Si cela s'avère nécessaire, il faut avoir recours à une annotation englobante ("wrapper"). C'est, par exemple, le cas de l'annotation javax.persistence.SecondaryTables qui peut alors s'utiliser comme ceci :

7. Implémenter vos propres annotations :

Pour vos besoins personnels, il peut être très intéressant d'implémenter vos propres annotations. Vous aurez ce besoin principalement lorsque vous travaillerez sur des librairies.
L'article "Implémenter vos propres annotations" explique comment développer vos propres annotations.

Adaptavist Theme Builder (4.2.3) Powered by Atlassian Confluence 3.5.5, the Enterprise Wiki