Maison >Java >javaDidacticiel >Pouvez-vous accéder aux valeurs d'annotation d'une classe différente en Java ?

Pouvez-vous accéder aux valeurs d'annotation d'une classe différente en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 10:11:02368parcourir

Can You Access Annotation Values from a Different Class in Java?

Accès aux valeurs d'annotation en externe

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!

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