? Annotations Java , a ajouté dans Java 1.5 , peut ajouter des informations supplémentaires à propos d'une classe, une méthode ou un champ. Cette information peut être utilisée de diverses manières , comme détaillant la manière dont un programme doit s'exécuter , ou quelles méthodes doit être évitée par d'autres développeurs . Selon la façon dont les annotations ont été codé à l'origine , cette information peut être disponible seulement dans le code source d'origine, lorsque l'on travaille avec la classe compilée directement ou à l'exécution via la réflexion. Qu'est-ce que les annotations sont
Autrement dit, une annotation est un moyen d'ajouter des informations supplémentaires - également appelées métadonnées - à votre programme sur l'élément annoté. Cette information peut être simple comme un auteur détaillant de note ou quelque chose d'aussi complexe que l'association d'un champ d'une colonne de base de données. Les annotations peuvent être manipulés dans l'une des trois façons suivantes: en restant uniquement dans le code source d'origine , où ils sont généralement seulement visible à d'autres développeurs , en étant compilé en bytecode , où ils ne sont pas disponibles pour le traitement de l'exécution, mais sont disponibles à programmes qui accèdent aux fichiers de classe , et en cours de compilation afin que l'information est chargé lors de l'exécution de sorte que le programme en cours peut y accéder
Pourquoi besoin de détails annotation à l'exécution
Parce que . ? un développeur peut indiquer des informations supplémentaires sur un élément , que ces informations soient disponibles lors de l'exécution peut permettre à un programme d'agir différemment pour cet article sans nécessairement exiger ces informations pour compiler (ou même fonction ) . Par exemple, considérons une annotation qui associe un champ avec une colonne de base de données , il serait peut ressembler à ceci :
@ DBField ( " PRENOM " )
privé cordes prenom ;
< p> Pendant l'exécution , le programme pourrait lire cette information et s'en rendre compte doit remplir ce champ en fonction du contenu de cette colonne ( accordée, elle devra également table et données de la ligne ) . Cela permettrait également à l' utilisateur d'écrire , par exemple, un programme de traitement de données générique qui s'appuie sur les annotations et n'a pas besoin de beaucoup de spécialisation pour chaque classe .
Comment Annotations Java sont ignorés
Comme indiqué précédemment, il ya trois façons pour le compilateur de traiter une annotation elle devient dans le code suivant: en supprimant celle-ci ( et laissant ainsi seulement dans le code) , en compilant dans le bytecode et en compilant dans le bytecode avec les informations nécessaires pour le charger à l'exécution. La deuxième option - la compilation dans le bytecode ( sans la charger à l'exécution) - est la valeur par défaut pour toutes les annotations , donc à moins d'indication contraire, une annotation ne sera pas disponible lors de l'exécution . Cependant , en précisant ce qui est extrêmement simple si vous avez accès au code source de l' annotation . Il suffit d'ajouter une annotation supplémentaire à la définition annotation :
@ rétention ( RetentionPolicy.RUNTIME )
du public @ interface de MyAnnotation ...
en utilisant l'annotation à exécution
Une fois que vous avez vérifié l'annotation est disponible à l'exécution , son utilisation est extrêmement simple. En supposant que vous avez une annotation nommé " auteur" avec une valeur de chaîne , vous pouvez utiliser le code suivant pour s'assurer que vous n'avez accès runtime à l'annotation :
finale Auteur author = MyClass.class.getAnnotation ( Author. classe);
System.out.println ( author.value ());
Dans ce cas, MyClass serait déclaré comme suit :
@ Auteur (" John Doe " )
public class MyClass ...
Lorsque vous exécutez les lignes ci-dessus, vous devriez obtenir la valeur de l' annotation (« John Doe », dans ce cas) imprimée sur la console .