2010-04-06 9 views

Répondre

4

Malheureusement, il semble qu'il n'y ait pas de solution prête à l'emploi en Java.

Dans notre projet, nous avons utilisé une approche légèrement modifiée proposée par some blog. La solution décrite ici consiste à analyser le système de fichiers et les fichiers JAR pour les classes.

Si vous souhaitez sélectionner uniquement des classes implémentant une interface, vous pouvez effectuer des vérifications supplémentaires telles que clazz.isAssignableFrom(MyInterface.class).

+0

Il a aidé mon beaucoup. Merci! – mgamer

2

L'équivalent Java d'un assembly est un fichier JAR; le contenu d'un fichier JAR peut être répertorié en utilisant les classes au java.util.jar. Il n'y a pas de mécanisme plus général (comme obtenir toutes les classes dans un paquet) parce que le mécanisme de chargement de classe Java est très flexible et permet des choses comme des classes chargées via HTTP ou générées à la volée, donc il est impossible de connaître toutes les classes qui sont disponibles.