Accès aux valeurs d'annotation en Java
Les annotations sont un mécanisme puissant en Java pour ajouter des métadonnées aux classes, méthodes et champs. Ces annotations sont accessibles et utilisées au moment de l'exécution pour modifier le comportement du code annoté. Une question courante qui se pose est de savoir s'il est possible de lire la valeur d'une annotation dans une classe différente.
La réponse à cette question est oui, mais cela dépend de la politique de rétention de l'annotation. Les annotations peuvent avoir l'une des trois politiques de conservation suivantes :
Pour lire la valeur d'une annotation dans une classe différente, l'annotation doit avoir une politique de rétention d'exécution. Pour spécifier une politique de rétention d'exécution, utilisez l'annotation @Retention suivie de l'énumération RetentionPolicy :
@Retention(RetentionPolicy.RUNTIME) @interface Column { String columnName(); }
Une fois que l'annotation a une politique de rétention d'exécution, vous pouvez utiliser la réflexion pour accéder à ses valeurs dans une autre classe :
for (Field f : MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }
Notez que pour accéder aux champs privés, vous devez utiliser la méthode getDeclaredFields() au lieu de getFields() :
for (Field f : MyClass.class.getDeclaredFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.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!