Bonjour à tous,

Je suis actuellement confronté à un problème lié à l'utilisation de l'introspection sur des classes-mères.

J'ai une classe A qui hérite d'une classe B, toutes deux possèdent des attributs. Je créé une instance de la classe A et je souhaite utiliser l'introspection pour récupérer les noms et valeurs des attributs de l'instance créée.

J'utilise donc le code ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Class c = Class.forName("A");
Field[] f = c.getDeclaredFields();
System.out.println(f[0].get(obj).toString()); // affiche le nom du 1er attribut de la classe A
Lorsque j'applique la même méthode sur le même objet mais en voulant introspecter sur la classe B, ça ne marche pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Class c = Class.forName("B");
Field[] f = c.getDeclaredFields();
System.out.println(f[0].get(obj).toString()); //lève une IllegalArgumentException
Cependant, dans la Javadoc, il semble possible de récupérer les champs d'une instance d'une classe et de ses classes-mères.

Savez-vous comment cela se réalise-t-il ?

Merci d'avance et longue vie à developpez.com !!!

[ Modéré par SEMPERE Benjamin ]
Ajout des balises code
Les Règles du Forum