Bonjour a tous,
J'essaie d'utiliser Commons Discovering pour rechercher les classes qui implementent une certaine interface Modulable.class
J'arrive tres bien a rechercer UNE classe qui implemente cette interface avec ce morceau de code :
Le probleme de ce code c'est qu'il permet uniquement de retrouver la premiere classe implementant l'interface.
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 ClassLoaders loaders = ClassLoaders.getAppLoaders(Modulable.class, getClass(), false); DiscoverClass discover = new DiscoverClass(loaders); Class implClass = discover.find(Modulable.class); System.err.println("Implementing Provider: " + implClass.getName()); try { Modulable modulable = (Modulable) Beans.instantiate( implClass.getClassLoader(),implClass.getName()); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Comment faire pour retrouver TOUTES les classes implementant l'interface ?
J'ai essaye en partant de DiscoverClasses mais ca ne marche pas.
Quelqu'un aurait deja utilise Commons Discovering dans ce cas ? Ou bien si vous avez d'autres solutions a me proposer, je suis preneur aussi!
Merci d'avance,
sylvain_2020
Partager