En Java, est-il possible de récupérer les valeurs des annotations définies dans une classe au sein d'une autre ?
Par exemple, considérons l'annotation suivante et ses méthodes d'accès correspondantes :
<br>@Column(columnName="firstname")<br>private String firstName;</p> <p>@Column(columnName= "lastname")<br>private String lastName;</p> <p>public String getFirstName() {<br> return firstName;<br>}</p> <p>public void setFirstName(String firstName) {<br> this.firstName = firstName;<br>}</p> <p>public String getLastName() {<br> return lastName;<br>></p> <p>public void setLastName(String lastName) {<br> this .lastName = lastName;<br>}<br>
Est-il possible de vérifier la valeur "columnName" de l'annotation @Column à partir d'une classe distincte ?
Oui , c'est possible si l'annotation @Column spécifie la rétention d'exécution à l'aide de @Retention(RetentionPolicy.RUNTIME). Voici comment :
<code class="java">for (Field f: MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) System.out.println(column.columnName()); }</code>
Notez que MyClass.class.getFields() récupère uniquement les champs publics. Pour accéder aux champs privés, utilisez MyClass.class.getDeclaredFields().
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!