Maison  >  Article  >  Java  >  Que sont les annotations Java ?

Que sont les annotations Java ?

青灯夜游
青灯夜游original
2019-12-26 14:28:055162parcourir

Depuis l'introduction des annotations dans Java 5.0, elles sont devenues une partie très importante de la plateforme Java. Au cours du processus de développement, nous voyons souvent des annotations telles que @Override et @Deprecated dans le code de l'application. Alors, que sont les annotations ? Laissez-moi vous le présenter ci-dessous.

Que sont les annotations Java ?

Que sont les annotations ?

Les annotations sont également appelées métadonnées, qui sont une sorte de données qui décrivent les données. Les annotations sont une fonctionnalité introduite dans la version 1.5 du JDK. Elles sont utilisées pour expliquer le code. Elles peuvent annoter des packages, des classes, des interfaces, des champs, des paramètres de méthode, des variables locales, etc.

A quoi servent les annotations ?

Explication officielle :

Les annotations sont une série de métadonnées qui fournissent des données pour expliquer le code du programme, mais les annotations ne font pas partie du code interprété lui-même. Les annotations n'ont aucun impact direct sur les performances d'exécution du code.

1. Fournir des informations au compilateur : Le compilateur peut utiliser des annotations pour détecter les erreurs et les messages d'avertissement

Par exemple, @Override invite la sous-classe à remplacer la méthode modifiée dans la classe parent

2. Traitement pendant la phase de compilation : des outils logiciels peuvent être utilisés pour utiliser les informations d'annotation pour générer du code, des documents HTML ou effectuer d'autres traitements correspondants.

3. Traitement d'exécution : certaines annotations peuvent accepter l'extraction de code lorsque le programme est en cours d'exécution.

Les annotations sont principalement destinées aux compilateurs et autres logiciels-outils lorsque les développeurs utilisent Annotation Après avoir modifié des membres tels que des classes, méthodes et champs, ces annotations ne prendront pas effet d'elles-mêmes. Le développeur doit fournir le code correspondant pour extraire et traiter les informations d'annotation. Ces codes qui gèrent l'extraction et le traitement des annotations sont collectivement appelés APT (Annotation Processing Tool).

Les annotations peuvent être divisées en trois catégories :

● Une catégorie est constituée des annotations standard de Java, y compris @Override (marqué pour remplacer un certain méthode), @Deprecated (indique qu'une classe ou une méthode est obsolète) et @SuppressWarnings (indique les avertissements à ignorer), le compilateur vérifiera après avoir utilisé ces annotations.

● Un type est celui des méta-annotations. Les méta-annotations sont des annotations utilisées pour définir des annotations, notamment @Retention (marquant l'étape à laquelle l'annotation est conservée), @Target (marquant la portée d'utilisation de l'annotation). ), et @Inherited (marquant l'annotation Inheritable), @Documented (indique s'il faut générer des documents javadoc), @Repeatable.

● Un type est constitué d'annotations personnalisées, qui peuvent être définies en fonction de vos propres besoins

Méta-annotations

Les méta-annotations peuvent être annotées pour annotations L'annotation, ou méta-annotation, est une annotation de base, mais elle peut être appliquée à d'autres annotations. Pour le dire plus clairement, les annotations que nous utilisons lors de la définition des annotations sont des méta-annotations.

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
}

À l'exception du symbole @, une annotation ressemble beaucoup à une interface. Les méta-annotations sont requises lors de la définition des annotations.

Il y a généralement des éléments dans les annotations pour représenter certaines valeurs. Les éléments annotés ressemblent à des méthodes d'interface, la seule différence est que vous pouvez leur spécifier une valeur par défaut. Les annotations sans éléments sont appelées annotations de marque. Le @Test ci-dessus est une annotation de marque.

Les types d'annotations disponibles sont les suivants : tous les types de base, chaîne, classe, énumération, annotation et formes de tableau des types ci-dessus. Les éléments ne peuvent pas avoir de valeurs non définies, c'est-à-dire avoir une valeur par défaut ou fournir la valeur de l'élément lors de l'utilisation d'annotations. Et les éléments ne peuvent pas utiliser null comme valeur par défaut. Lorsque l'annotation n'a qu'un seul élément et que le nom de l'élément est value, vous pouvez omettre "value=" lors de l'utilisation de l'annotation et écrire directement la valeur requise.

Il existe 5 types de méta-annotations, @Retention, @Documented, @Target, @Inherited et @Repeatable.

@Retention

L'anglais signifie période de rétention. Lorsque @Retention est appliqué à une annotation, cela explique la durée de vie de l'annotation.

@Documenté

Cette méta-annotation est définitivement liée au document. Sa fonction est d'inclure les éléments de l'annotation dans Javadoc

@Target

La signification de target, @Target précise l'endroit où l'annotation est utilisée

@Inherited

Hérité signifie héritage, mais cela ne signifie pas que l'annotation elle-même peut être héritée. Cela signifie que si une super classe est annotée avec une annotation @Inherited, alors si sa sous-classe n'est appliquée par aucune annotation, si c'est le cas, alors cette sous-classe hérite de l'annotation de superclasse

@Repeatable

Repeatable signifie naturellement répétable. @Repeatable n'a été ajouté que dans Java 1.8, il est donc considéré comme une nouvelle fonctionnalité.

Apprentissage recommandé : Tutoriel vidéo Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn