Bonjour,
Je veux faire l'introspection et appeler une méthode d'une interface.
J'ai exploré les autres posts et tuto sur l'introspection.
Mon problème est le suivant :
je fais un
1 2 3
|
// nomInterface et une interface et non une classe
Class c = Class.forName("nomInterface"); |
J'aimerai appeler la méthode methode1() de cette interface. Je ne sais comment le faire car :
1. On ne peut pas instancier l'interface comme dans le cas d'une classe. Une tentative de cette opération c'est à dire
Object o = c.newInstance();
en vue de faire un invoke()
crée une exception InstanciationException.
2. On ne peut pas faire un invoke() directement sur c car il n'est pas un Object. Une tentative de cette opération c'est à dire :
1 2
| Method m = c.getMethod("methode1", null);
Object o = m.invoke(c); |
crée une exception IllegalArgumentException:object is not an instance of declaring class
J'aimerai donc savoir
1. Comment appeler une méthode à travers une interface ?
ou
2. comment (par introspectuon) obtenir la classe qui implémente une interface afin d'appeler directment la méthode sur l'instance de cette classe.
Merci si quelqu'un a une idée.
Partager