Maison  >  Article  >  Java  >  Comment accéder aux valeurs d'annotation lors de l'exécution en Java ?

Comment accéder aux valeurs d'annotation lors de l'exécution en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 05:59:30950parcourir

How to Access Annotation Values at Runtime in Java?

Accès aux valeurs d'annotation en Java

Les annotations Java fournissent un mécanisme permettant d'ajouter des métadonnées aux éléments de code, tels que des classes, des méthodes et des champs. Par défaut, les annotations ne sont disponibles que lors de la compilation et sont supprimées au moment de l'exécution. Cependant, en spécifiant la valeur RetentionPolicy.RUNTIME dans l'annotation Retention, vous pouvez conserver les annotations au moment de l'exécution.

Accéder aux valeurs d'annotation d'une autre classe

Si une annotation a la RetentionPolicy.RUNTIME, vous pouvez utiliser la réflexion Java pour lire sa valeur à partir d'une autre classe. Voici comment :

<code class="java">// Import the necessary classes
import java.lang.reflect.Field;
import java.lang.annotation.Annotation;

// Get the class object
Class<?> clazz = MyClass.class;

// Iterate over the fields of the class
for (Field field : clazz.getFields()) {

    // Check if the field has the Column annotation
    Annotation annotation = field.getAnnotation(Column.class);

    // If the annotation exists, read its columnName() value
    if (annotation != null) {
        String columnName = ((Column) annotation).columnName();
        System.out.println("Column Name: " + columnName);
    }
}</code>

Accès aux champs privés

La méthode getFields() récupère uniquement les champs publics. Pour accéder aux champs privés, utilisez plutôt getDeclaredFields() :

<code class="java">for (Field field : clazz.getDeclaredFields()) {

    ...
}</code>

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