Maison >Java >javaDidacticiel >Les valeurs d'annotation peuvent-elles être lues dans une classe différente lors de l'exécution en 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>
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>
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>
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!