「Java」Savez-vous comment sont implémentées les annotations Java que nous utilisons souvent ? Les annotations sont équivalentes aux balises. La différence entre elles et les annotations est que le contenu des annotations peut être utilisé. Ensuite, découvrons les annotations Java.
Pour utiliser les annotations, nous pouvons les diviser en trois parties, à savoir : l'annotation elle-même, la classe d'utilisation des annotations et la classe de traitement des annotations, comme indiqué ci-dessous : Description de l'image
La structure de l'annotation
Ensuite, voyons comment fonctionne le code
Étape 1 : Créer de nouvelles annotations
Créez deux nouvelles annotations, à savoir PlayerName et PlayerInfor
PlayerName :
importer java.lang.annotation.Documented;
importer java.lang.annotation.ElementType;
importer java.lang.annotation.Retention;
importer java.lang.annotation .RetentionPolicy;
importer java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface PlayerName {
String value() par défaut "";
}
PlayerInfor :
importer java .lang.annotation.Documented;
importer java.lang.annotation.ElementType;
importer java.lang.annotation.Retention;
importer java .lang.annotation. >
@ Documentépublic @interface PlayerInfor {public enum Color{Bleu, Rouge, Blanc};Color color() par défaut Color.Blue; int number() par défaut 7;int age();String club() par défaut "Manchester United";}Deuxième étape : définissez la classe d'entité et utilisez l'annotation nouvellement crééepour créer une nouvelle classe FootballPlayer
FootballPlayer :
classe publique FootballPlayer {
// Lier l'annotation PlayerName Dans l'attribut name de la classe d'entité
Créer une nouvelle classe d'outils AnnoUtil
AnnoUtil :
import java.lang.reflect.Field;
classe publique AnnoUtil {
/
Récupérer tous les attributs de la classe d'entité
/Field[] field = clazz.getFields();//Boucle pour extraire les annotations dans le Attributs de classe d'entitéfor(Field field:fields){
//Match annotationif(field.isAnnotationPresent(PlayerName.class)){//Obtenir l'annotationPlayerName name = field.getAnnotation(PlayerName.class);//Utiliser les annotationsSystem.out.println("Nom de l'athlète : " +name.value());}else if(field.isAnnotationPresent(PlayerInfor.class)){//Obtenir l'annotationPlayerInfor infor = field.getAnnotation (PlayerInfor.class);//Utiliser les annotationsSystem.out.println("Affiliation à l'équipe : "+infor.club()+", représentant la couleur : "+infor.color() +", numéro : "+infor.number()+", âge : "+infor.age());}}}
}Étape 4 : Appeler la méthode de traitement de la classe de traitement
public static void main(String[] args) {
AnnoUtil .getPlayerInfo(FootballPlayer.class);
}
Les résultats de sortie sont les suivants :
Java fournit quatre méta-annotations, qui sont spécifiquement responsables de l'annotation d'autres annotations, comme suit :
@Méta-annotation de rétention, indiquant à quel niveau les informations d'annotation ont besoin à sauvegarder (cycle de vie). Les paramètres RetentionPoicy facultatifs incluent :
RetentionPolicy.SOURCE : reste dans le fichier source Java, le compilateur sera supprimé
RetentionPolicy.CLASS : reste dans le fichier de classe, mais sera supprimé par la VM (par défaut)
Je viens de compiler un ensemble des derniers didacticiels d'introduction et avancés de base 0 en 2018. Je les partage de manière désintéressée. Vous pouvez les obtenir en ajoutant le numéro d'apprentissage Java : 678-241-563. Sont inclus : les outils de développement et les packages d'installation. , ainsi que l'image des itinéraires d'apprentissage du système.
Articles associés :
Résumé des annotations les plus couramment utilisées en Java
Tutoriels d'annotations Java et annotations personnalisées
Vidéos associées :
Analyse complète des annotations 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!