Maison >Java >javaDidacticiel >Explication détaillée des points de connaissance Java : annotations et méta-annotations
Cet article vous apporte des connaissances pertinentes sur java Il présente principalement les problèmes liés aux annotations et aux méta-annotations, y compris une introduction de base aux annotations, une introduction de base à l'annotation, etc. tout le monde.
Étude recommandée : "Tutoriel vidéo Java"
L'annotation (annotation) est également appelée métadonnées (Metadata), qui a été introduite dans JDK1.5 et les versions ultérieures , utilisé 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, les variables locales, etc. 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.
Des annotations existent dans le code avec '@annotation name' Selon le nombre de paramètres d'annotation, nous pouvons diviser les annotations en trois catégories : les annotations de marque, 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 et sont équivalentes à des informations supplémentaires intégrées dans le code.
De plus, vous pouvez choisir si les annotations dans le code n'existent qu'au niveau du code source lors de la compilation, ou si elles peuvent également apparaître dans les fichiers de classe ou au runtime (SOURCE/CLASS/RUNTIME).
En JavaSE, le but de l'utilisation des annotations est relativement simple, comme marquer les fonctions obsolètes, ignorer les avertissements, etc. Les annotations jouent un rôle plus important dans Java EE, par exemple en étant utilisées pour configurer n'importe quel aspect de l'application, remplaçant ainsi le code fastidieux et la configuration XML laissés dans l'ancienne version de Java EE.
@Override : Limiter une méthode, c'est remplacer la méthode de la classe parent , Cette annotation ne peut être utilisée que pour les méthodes
@Obsolète : utilisé pour représenter un certain élément de programme ( Catégorie , Méthodes, etc. ) Obsolète
@SuppressWarnings : Supprimer les avertissements du compilateur
@Override
class Son extends Father{ @Override public void play(){} }
Remarque :
@Override représente le jeu des remplacements de méthodes de sous-classes la classe des parents Play
没有 没有 Si tu ne l'écris pas ici @Remplacer Il remplacera toujours la classe parent ply
Si vous écrivez l'annotation @Override, le compilateur vérifiera si la méthode remplace réellement la classe parent Méthode, si elle est effectivement réécrite, la compilation réussira ; si elle n'est pas réécrite, l'erreur de compilation se produira.
@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(){ } }
Remarque :
peut modifier des méthodes, des classes, des champs, des packages, des paramètres, etc.
Son rôle est d'assurer la compatibilité et transition entre l'ancienne et la nouvelle version
@
注意: 关于 SuppressWarnings 作用范围是和你放置的位置相关。比如@SuppressWarnings 放置在 main 方法,那么抑制警告的范围就是 main 通过 @SuppressWarnings 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。 ▶ Qu'est-ce que la méta-annotation : La méta-annotation est une annotation qui explique l'annotation L'objet de son annotation est l'annotation que nous avons introduite. plus tôt, tels que : @Override, @Deprecated, @SuppressWarnings ▶ Quatre méta-annotations : Rétention : La portée de l'annotation, trois types : SOURCE, CLASSE, EXÉCUTION Hérité : La sous-classe héritera des annotations de la classe parent.
▶ Notes sur l'annotation :
# et C 在 La note existera dans le fichier de bytecode de classe que vous pouvez obtenir par réflexion au moment de l'exécution doit d'abord indiquer clairement que la longueur du cycle de vie source &. lt; classe & lt; ① : Généralement, si vous avez besoin d'obtenir dynamiquement des informations d'annotation au runtime ② : Si vous souhaitez effectuer certaines opérations de prétraitement au compile time, comme générer des opérations auxiliaires. coder (comme B utterKnife ), utilisez simplement l'annotation CLASS ;
ne peut être utilisée que pour modifier une définition d'Annotation, @Rentention , vous devez spécifier une valeur pour cette variable membre (il y a trois valeurs). Trois valeurs : RetentionPolicy.SOURCE: Une fois le compilateur utilisé, supprimez simplement les commentaires pour cette stratégie.
RetentionPolicy.CLASS : Le compilateur enregistrera l'annotation en classe
Dans le dossier
.
Lors de la course
Java
Durée de la procédure
, JVM
Les annotations ne seront pas conservées. Il s'agit de la valeur par défaut.
RetentionPolicy.RUNTIME : Le compilateur enregistrera l'annotation en classe
Dans le dossier
.
Lors de la course
Java
Procédure
, JVM
Les annotations seront conservées
.
Le programme peut obtenir cette annotation par réflexion.
est utilisée pour modifier la définition de l'annotation, en spécifiant les éléments du programme que l'annotation modifiée peut être utilisée pour modifier. @Target contient également une variable membre nommée valeur. @Documenté : Utilisé pour préciser que la classe Annotation modifiée par cette méta-annotation sera extraite dans un document par l'outil javadoc, c'est-à-dire le document généré, vous pouvez voir l'annotation. Remarque : Les annotations définies comme @Documenté doivent définir la valeur de rétention sur RUNTIME. L'annotation modifiée par @Inherited aura l'héritage, si une classe Annotations modifiées par @ Les héritages sont utilisés, puis ses les sous-classes auront automatiquement cette annotationApprentissage recommandé : "@SuppressWarnings ("all")
public class word{ }
三、@SuppressWarnings的指定警告类型
关键字
解释
all
抑制所有警告
boxing
抑制与封装/拆装作业相关的警告
cast
抑制与强制转型作业相关的警告
dep-ann
抑制与淘汰注释相关的警告
deprecation
抑制与淘汰的相关警告
fallthrough
抑制与 switch 陈述式中遗漏 break 相关的警告
finally
抑制与未传回 finally 区块相关的警告
hiding
抑制与隐藏变数的区域变数相关的警告
incomplete-switch
抑制与 switch 陈述式(enum case)中遗漏项目相关的警告
javadoc
抑制与 javadoc 相关的警告
nls
抑制与非 nls 字串文字相关的警告
null
抑制与空值分析相关的警告
rawtypes
抑制与使用 raw 类型相关的警告
resource
抑制与使用 Closeable 类型的资源相关的警告
restriction
抑制与使用不建议或禁止参照相关的警告
serial
抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告
static-access
抑制与静态存取不正确相关的警告
static-method
Supprimer les avertissements liés aux méthodes qui peuvent être déclarées statique
super
Supprimer les avertissements liés aux méthodes de substitution sans super appels
synthétique-access
Supprimer les avertissements liés à l'accès non optimisé aux classes internes
sync-override
Supprimer la méthode de synchronisation de remplacement Avertissements concernant la synchronisation manquante
non coché
Supprimer les avertissements liés aux travaux non cochés
accès au champ non qualifié
Supprimer avec les avertissements liés au champ non qualifié accès
unused
Supprimer les avertissements liés au code inutilisé et au code désactivé
4. Méta-annotation
1. Introduction de base
③ : Si vous effectuez simplement quelques opérations de
vérification telles que @Override et @SuppressWarnings, vous pouvez utiliser l'annotation SOURCE.
2. Annotation de rétention
Explication :
Annotation
" peut retenir plus Pour un Pendant longtemps, @Rentention contient une variable membre de type
RetentionPolicy. Lorsque vous utilisez
explication :
Annotation documentée Explication :
5. Annotation héritée Explication :
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!