Maison > Java > javaDidacticiel > le corps du texte

Les valeurs d'annotation peuvent-elles être lues dans une classe différente lors de l'exécution en Java ?

Linda Hamilton
Libérer: 2024-10-26 06:15:02
original
691 Les gens l'ont consulté

Can Annotation Values Be Read in a Different Class at Runtime in Java?

Récupération des valeurs d'annotation en Java

Les annotations Java offrent un moyen pratique de fournir des métadonnées sur les éléments de code. Dans certains scénarios, vous devrez peut-être accéder aux valeurs de ces annotations au moment de l'exécution. En particulier, la question se pose :

Les annotations avec rétention d'exécution peuvent-elles être lues dans une classe différente en Java ?

La réponse est oui, à condition que l'annotation soit annotée avec @Retention(RetentionPolicy.RUNTIME). Cela indique que l'annotation doit être disponible au moment de l'exécution, au-delà de la compilation.

Considérez l'extrait de code suivant :

<code class="java">@Column(columnName="firstname")
private String firstName;

@Column(columnName="lastname")
private String lastName;</code>
Copier après la connexion

Pour récupérer les valeurs d'annotation dans une autre classe, vous pouvez utiliser la réflexion :

<code class="java">for (Field f : MyClass.class.getFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}</code>
Copier après la connexion

Si vous avez besoin d'accéder à des champs privés, vous pouvez utiliser getDeclaredFields() :

<code class="java">for (Field f : MyClass.class.getDeclaredFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}</code>
Copier après la connexion

Ce code parcourt les champs de MyClass, vérifiant les annotations @Column sur chaque champ. Si une annotation est trouvée, elle imprime la valeur de l'attribut columnName.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!