(JAVA) : Une introduction détaillée aux annotations et méta-annotations. Pour les comprendre, vous les rencontrerez en regardant le code source.

teneur

1. Introduction de base aux annotations ☺☺

Deuxièmement, l'introduction de base d'Annotation☺☺

1. Trois annotations de base☺

2. Exemple de code☺

3. Le type d'avertissement spécifié de @SuppressWarnings ☺☺

4. Méta-annotation ☺☺

1. Introduction de base☺

2. Annotation de rétention ☺

3. Annotation cible ☺

​​​​​​4, Annotations documentées ☺

5. Annotations héritées☺


1. Introduction de base aux annotations ☺☺

        L'annotation (annotation), également connue sous le nom de métadonnées (métadonnées), est introduite par JDK1.5 et les versions ultérieures, et est utilisée pour modifier et interpréter les informations de données telles que les packages, les classes, les méthodes, les propriétés, les constructeurs et les variables locales. Il peut être utilisé pour créer de la documentation, suivre les dépendances dans votre code et même effectuer des vérifications de base au moment de la compilation.

        Les annotations existent dans le code avec "@nom de l'annotation". Selon le nombre de paramètres d'annotation, nous pouvons diviser les annotations en trois catégories : les annotations marquées, les annotations à valeur unique et les annotations complètes. Comme les commentaires, les annotations n'affectent pas la logique du programme, mais elles peuvent être compilées ou exécutées en tant qu'informations supplémentaires intégrées dans le code.

        De plus, vous pouvez choisir au moment de la compilation si l'annotation dans le code n'existe qu'au niveau du code source, ou si elle peut également apparaître dans le fichier de classe ou à l'exécution (SOURCE/CLASS/RUNTIME).

        Dans JavaSE, les annotations sont utilisées à des fins plus simples, telles que le marquage de fonctionnalités obsolètes, l'ignorance des avertissements, etc. Les annotations jouent un rôle plus important dans Java EE, par exemple pour configurer n'importe quel aspect d'une application, remplaçant le code encombrant et la configuration XML laissés par les anciennes versions de Java EE.


Deuxièmement, l'introduction de base d'Annotation☺☺

1. Trois annotations de base☺

@Override  : Limiter une méthode, c'est remplacer la méthode de la classe parente , cette annotation ne peut être utilisée que pour les méthodes
▶  @Deprecated  : utilisé pour indiquer qu'un élément du programme ( classe , méthode, etc. ) est obsolète
@SuppressWarnings  : supprime les avertissements du compilateur

2. Exemple de code☺

①:@Remplacer

class Son extends Father{

    @Override
    public void play(){}

}

Avis:

        ▷ @Override indique que la méthode de lecture de la sous-classe remplace la lecture de la classe parent
        ▷  Si @Override n'est pas écrit ici , le pli de la classe parent sera toujours réécrit
        ▷ Si vous écrivez l'annotation @Override, le compilateur vérifiera si la méthode redéfinit réellement la méthode de la classe parente, si c'est le cas, la compilation réussira, et si elle ne constitue pas un redéfinition, ce sera une erreur de compilation.
        ▷@Override ne peut modifier que les méthodes, pas les autres classes, packages, propriétés, etc.

②:@Obsolète

@Deprecated
class A{
    @Deprecated
    public static int name = 1;

    @Deprecated
    public void play(){ }
}

Avis:

        ▷  Obsolète ne signifie pas qu'il ne peut pas être utilisé, il n'est tout simplement pas recommandé, mais il peut toujours être utilisé

        ▷  Peut modifier des méthodes, des classes, des champs, des packages, des paramètres, etc.

        ▷  Sa fonction est d'assurer la compatibilité et la transition entre l'ancienne et la nouvelle version


③:@ Supprimer les avertissements

        

@SuppressWarnings ("all")
public class word{ }

Avis:

        ▷  À propos de SuppressWarnings La portée de l'action est relative à l'endroit où vous la placez. Par exemple, @SuppressWarnings est placé dans la méthode main, puis la portée de la suppression des avertissements est main

        ▷  Selon le code source de @SuppressWarnings, ses cibles d'annotation sont les classes, les champs, les fonctions, les paramètres d'entrée des fonctions, les constructeurs et les variables locales des fonctions.


3. Le type d'avertissement spécifié de @SuppressWarnings ☺☺

mots clés Explique
tout supprimer tous les avertissements
boxe Supprimer les avertissements liés aux opérations de conditionnement / démontage
moulage Supprimer les avertissements liés aux tâches de diffusion
dép-ann Supprimer les avertissements liés aux annotations obsolètes
désapprobation Supprimer et supprimer progressivement les avertissements associés
tomber dans Supprimer les avertissements liés à l'omission d' interruption dans l' instruction switch
finalement Supprimer les avertissements liés au non retour des blocs finally
cache Supprimer les avertissements liés aux variables de zone avec des variables masquées
commutateur incomplet Supprimer les avertissements liés aux éléments manquants dans les instructions switch (enum case)
javadoc Supprimer les avertissements liés à javadoc
nls Supprimer les avertissements liés aux littéraux de chaîne non nls
nul Supprimer les avertissements liés à l'analyse nulle
types bruts Supprimer les avertissements liés à l'utilisation de types bruts
Ressource Supprimer les avertissements liés à l'utilisation des ressources de type Fermable
restriction Supprime les avertissements liés à l'utilisation de références obsolètes ou interdites
en série Supprimer les avertissements liés aux classes sérialisables manquant le champ serialVersionUID
accès-statique Supprimer les avertissements liés à un accès statique incorrect
méthode-statique Supprimer les avertissements liés aux méthodes qui peuvent être déclarées statiques
super Supprimer les avertissements liés aux méthodes de substitution sans super appels
accès synthétique Supprimer les avertissements concernant l'accès non optimisé aux classes internes
remplacement de la synchronisation Supprimer les avertissements de synchronisation manqués en raison de la permutation des méthodes de synchronisation
décoché Supprimer les avertissements liés aux tâches non contrôlées
accès-au-terrain-non-qualifié Supprimer les avertissements liés à l'accès non qualifié aux champs
inutilisé Supprimer les avertissements liés au code inutilisé et au code désactivé

4. Méta-annotation ☺☺

1. Introduction de base☺

▶ Que sont les méta-annotations :

        Les méta-annotations sont des annotations qui expliquent les annotations. Les objets qu'elles annotent sont les annotations que nous avons introduites précédemment, telles que : @Override, @Deprecated  , @SuppressWarnings       

 ▶ Quatre types de méta-annotations :

         ▷  Rétention : spécifiez la portée de l'annotation, trois types de SOURCE, CLASS, RUNTIME
         ▷  Cible : spécifiez où les annotations peuvent être utilisées
         ▷  Documenté : Spécifie si l'annotation sera reflétée dans javadoc
         ▷  Hérité : les sous-classes hériteront des annotations de la classe parente
▶ Notes pour annotation :
        ▷ Les  annotations n'existent que dans le code source, et ne sont pas incluses

        dans 

        le  fichier bytecode de la classe . Existence, elle peut être obtenue par réflexion au moment de l'exécution

        ▷  Tout d'abord, il est nécessaire de clarifier la durée du cycle de vie SOURCE < CLASS < RUNTIME , où le premier peut fonctionner, le second doit également fonctionner.
                ① : Généralement, si vous avez besoin d'obtenir dynamiquement des informations d'annotation lors de l'exécution, vous ne pouvez utiliser que l'annotation RUNTIME ;
                ② : Si vous souhaitez effectuer certaines opérations de prétraitement au moment de la compilation, telles que la génération de code auxiliaire (tel que ButterKnife), utilisez l'annotation CLASS ;
                ③ : Si vous ne faites que quelques opérations d'inspection telles que @Override et @SuppressWarnings, vous pouvez utiliser l'annotation SOURCE.

2. Annotation de rétention ☺

▲ Explication :

         Il ne peut être utilisé que pour modifier une définition d'annotation afin de spécifier la durée de conservation de l' annotation . @Rentention contient une variable membre de type RetentionPolicy. Lors de l'utilisation de @Rentention , vous devez spécifier une valeur pour la variable membre valeur (il existe trois valeurs ).

     

▲ Trois valeurs :

         ▷  RetentionPolicy.SOURCE : une fois que le compilateur l'a utilisé, il supprime directement les commentaires de cette stratégie.

          ▷  RetentionPolicy.CLASS : le compilateur enregistrera l'annotation dans le fichier de classe . Lors de l'exécution d'un programme Java , la JVM ne conservera pas l'annotation. C'est la valeur par défaut.
          ▷  RetentionPolicy.RUNTIME :  le compilateur enregistrera l'annotation dans le fichier de classe . Lors de l'exécution d'un programme Java , la JVM conservera l'annotation . Le programme peut obtenir l'annotation par réflexion.

3. Annotation cible ☺

▲ Explication :

        Utilisé pour décorer les définitions d'annotation, en spécifiant les éléments de programme que l'annotation décorée peut être utilisée pour décorer. @Target contient également une variable membre nommée value.


​​​​​​4, Annotations documentées☺

▲ Explication :

        @Documented : utilisé pour spécifier que la classe Annotation modifiée par cette méta-annotation sera extraite dans un document par l'outil javadoc, c'est-à-dire que l'annotation peut être vue lorsque le document est généré.

▲  Remarque :

        Les annotations définies comme @Documented doivent définir la valeur Retention sur RUNTIME.


5.​​​​​​​Annotations héritées☺

▲ Explication :

        Les annotations modifiées par @Inherited auront un héritage. Si une classe utilise une annotation modifiée par @Inherited, ses sous-classes auront automatiquement l'annotation

Je suppose que tu aimes

Origine blog.csdn.net/yzh2776680982/article/details/124356590
conseillé
Classement