0
J'ai créé une simple classe d'annotation:Comment obtenir le terrain d'une classe par son annotation
@Retention(RUNTIME)
public @interface Column {
public String name();
}
Je l'utilise dans certaines classes comme ceci:
public class FgnPzt extends Point {
public static final String COLUMN_TYPE = "type";
@Column(name=COLUMN_TYPE)
protected String type;
}
Je sais que je peux itérer les champs déclarés et obtenir l'annotation comme ceci:
for (Field field : current.getDeclaredFields()) {
try {
Column c = field.getAnnotation(Column.class);
[...]
} catch(Exception e) {
[...]
}
}
Comment puis-je obtenir le champ type
directl Y par son nom annoté sans itération sur les champs déclarés de la classe?
En regardant l'API 'Class', je dirais que non, l'itération sur les champs est le seul moyen. Est-ce un problème pour vous? – Dici
J'ai des cours avec environ vingt/trente champs et j'ai besoin d'accéder à tous les domaines à chaque fois. Si je parcourt chaque champ à chaque fois, j'aurai une complexité n * – Lipsyor
Vous pouvez utiliser 'field.isAnnotationPresent (Column.class);' pour vérifier chaque champ. –