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 :
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("A"); Field[] f = c.getDeclaredFields(); System.out.println(f[0].get(obj).toString()); // affiche le nom du 1er attribut de la classe A
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.
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
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
Partager