Salut à tous,
J'essaie de charger des classes à partir du code binaire (.class) avec un ClassLoader dans le but d'extraire quelques informations concernant les classes (attributs, méthodes, héritages, interfaces ...).
J'arrive bien à Loader les classes, trouver la signature des attributs et méthodes, mais le problème qui arrive est le suivant:
Disons que j'ai chargé une classe Classe1 avec mon ClassLoader et que cette classe implémente l'interface Interface1, voici ce que je fais pour retrouver les interfaces que Classe1 implémente:
mais quand j'essaie d'extraire les interfaces avec:Code:
1
2
3 Class classe1 = monClassLoader.loadClassFromFile( path, name); // fonctionne bien
ce qui arrive ici est que Interface1 n'est pas reconnu par le ClassLoader original mais seulement par mon ClassLoader (puisqu'elle ne fait pas partie du classpath) et donc quand j'appelleCode:
1
2 Type[] iTypes = classe1.getGenericInterfaces();
celle ci déclenche une exception parce qu'elle ne connaît pas Interface1.Code:
1
2 Type[] iTypes = classe1.getGenericInterfaces();
Est ce qu'il y a un moyen de charger Interface1 et faire en sorte qu'elle soit reconnu comme si elle fesais partie du classpath ?
Merci !
