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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public class maClasse
{
	public boolean treat(IClass cl)
	{
		...;
	}
}
et voici ma classe classA

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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