Reflection : IllegalArgumentException levee lors de l'appel d'une methode avec params
Bonjour tout le monde
voici mon probleme, j'execute le code suivant et j'obtient une levee d'exception IllegalArgumentException
En gros, dans mon fichier librairie j'ai une classe maClasse qui a une methode treat(IClass c) qui gere donc des objets qui implementent l'interface IClass.
J'ai un objet classA qui implemente cette interface.
J'ai besoin, grace au systeme de reflection, de faire appel dynamiquement a ma methode treat en lui passant en parametre une instance de ma classe classA.
Voila le code d'appel de ma methode
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
// on ouvre la librairie
URL chemins[] = { new URL("file:/C:/classes/maLibrairie.jar") };
URLClassLoader loader = new URLClassLoader(chemins);
Class o = loader.loadClass("fr.Librairie.maClasse");
// on instancie un objet classA
classA cl = new classA();
// on prepare l'appel a la methode treat en fixant les parametres
Class[] paramTypes = null;
paramTypes = new Class[1];
paramTypes[0] = classA.class;
// on cherche la methode treat
Method m = o.getMethod("treat",paramTypes);
// on prepare les parametres de la methode treat
Object[] args = new Object[1];
args[0] = cl;
// on appel la methode treat
result = m.invoke(o,args); |
voici en gros le code de la methode treat :
Code:
1 2 3 4 5 6 7 8
|
public class maClasse
{
public boolean treat(IClass cl)
{
...;
}
} |
et voici ma classe classA
Code:
1 2 3 4 5 6 7 8 9 10
|
public class classA implements IClass
{
classA()
{
....;
}
...;
} |
donc voila, tout marche bien jusqu'a l'appel de la methode ou j'ai cette levee d'exception. je comprend pas trop et apres avoir chercher sur le forum j'ai trouver une discussion peut etre similaire mais j'en suis pas sur : discussion
donc si quelqu'un pouvait m'expliquer pourquoi l'exception est levee
d'avance merci