Vidéo: TUTO Java EE - Introduction de l'utilisation de JPA 2024
Les types et le contenu des annotations en Java, comme les commentaires, ne sont limités que par votre imagination. Oui, Java fournit des annotations prédéfinies, mais vous pouvez également créer des annotations qui décrivent les éléments du programme comme vous le souhaitez. L'idée est de décrire comment une annotation devrait fonctionner, de lui fournir des données et le compilateur s'occupe du reste.
Les annotations commencent toujours par le symbole @ (at). Ainsi, lorsque vous voyez @Documented, vous savez que vous voyez une annotation. Les sections suivantes vous en disent plus sur les annotations prédéfinies et personnalisées.
Une annotation prédéfinie est celle qui existe dans le cadre de Java. Vous trouvez ces annotations dans le Java. lang. paquet d'annotation. Pour les utiliser, vous devez importer java. lang. annotation. *; au début de votre application. La liste suivante fournit un aperçu des annotations prédéfinies:
-
@Deprecated: Parfois, un élément - une classe, une méthode, un champ ou une autre fonctionnalité de programmation - est remplacé par un élément plus récent ou n'est plus nécessaire.
Lorsque cela se produit, vous marquez l'élément comme obsolète afin que les développeurs sachent qu'ils doivent mettre à jour leur code et cesser d'utiliser cet élément particulier. L'ajout de l'annotation @Deprecated génère l'état désapprouvé de l'élément dans la documentation générée par Javadoc (un utilitaire qui permet de créer automatiquement la documentation en fonction du contenu de vos fichiers de code).
-
@Documented: Chaque fois que vous marquez un élément comme documenté, l'utilitaire Javadoc le renvoie vers le fichier de documentation qu'il crée en fonction du contenu du fichier source.
-
@FunctionalInterface: Indique que l'interface est une interface fonctionnelle utilisée pour les classes anonymes et les expressions lambda.
-
@Inherited : Les classes peuvent hériter des caractéristiques d'une classe parente. Par défaut, cela inclut les fonctionnalités telles que les méthodes mais n'inclut pas les annotations de la classe parente. L'utilisation de l'annotation @Inherited indique à Java d'appliquer également les annotations de classes parentes à la sous-classe.
-
@Override: Spécifie qu'un élément de classe enfant remplace un élément de superclasse (classe parent). Si cette annotation est présente et que la super-classe n'a pas d'élément du même nom, le compilateur génère une erreur pour que vous sachiez que quelque chose ne va pas avec le remplacement.
-
@Repeatable: La plupart des annotations ne sont appliquées qu'une seule fois à un élément particulier. Cependant, dans certains cas, vous devez appliquer l'annotation plus d'une fois. Cette annotation indique à Java qu'il est acceptable d'appliquer l'annotation à un élément particulier plus d'une fois.
-
@Retention: une annotation ne peut affecter que le code source. le code source et le compilateur; ou le code source, le compilateur et la machine virtuelle Java. Cette annotation définit l'effet qu'une autre annotation devrait avoir. Par exemple, vous pouvez n'avoir besoin que d'une annotation spécifique à la documentation pour affecter le code source et le compilateur.
-
@SafeVarargs: Il est possible d'effectuer des opérations qui ne sont pas sécurisées sur les arguments transmis à une méthode ou un constructeur. Cette annotation dit que le code ne fait rien de dangereux et ne nécessite donc pas tous les contrôles habituels. La réduction du nombre de vérifications accélère le traitement de l'application.
-
@SuppressWarnings: Le compilateur Java génère une multitude d'avertissements pour signaler les problèmes potentiels. Par exemple, si vous essayez d'utiliser une méthode obsolète dans votre code, le compilateur génère un message d'avertissement à son sujet. Cette annotation indique au compilateur de ne pas afficher de tels avertissements pour l'élément affecté.
-
@Target: lorsque vous créez vos propres annotations, il peut être utile d'indiquer au compilateur que ces annotations ne doivent affecter qu'un type d'élément spécifique. Par exemple, si vous créez un bloc d'auteur destiné uniquement à apparaître au niveau du package, vous pouvez limiter l'annotation à ce type d'élément en utilisant l'annotation @Target.