Le bon, la brute et l'introspection

cs_bouiboui Messages postés 5 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 22 janvier 2003 - 22 janv. 2003 à 21:20
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 13 avril 2003 à 23:06
Bonjour,

je voudrais savoir s'il est possible de connaitre toutes les classes d'un package java en utilisant l'introspection (package reflect) de java, je cherche un commande du type
monPackage.getClasses() ...

Greg.

4 réponses

JHelp Messages postés 261 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 6 octobre 2005 11
22 janv. 2003 à 22:22
En fait, l'astuce est assez simple. Puisque ton package est un dossier du même nom et que les classes du package sont dans ce dossier, il suffit de prendre la liste des fichiers contenus dans le dossier, la classe File (java.io) devrait t'y aider.
JHelp
0
cs_bouiboui Messages postés 5 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 22 janvier 2003
22 janv. 2003 à 22:45
Oui c'est la solution la plus simple, je me demandais seulement si le reflect permettrait de faire ca, dommage.
merki
Greg.
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 23:04
Pas directement par l'introspection non mais en utilisant Enumeration ClassLoader.getSystemResources(String name);
Qui retourne une énumération de java.net.URL. Mais ça choppe tout fichier il faut donc filtrer.

Essai par:
ClassLoader.getSystemResources("monPackage.*");

C'est ainsi que dois procéder la machine virtuelle pour faire un import java.io.*;

Core Breaker :)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 avril 2003 à 23:06
Il est à noté que ca ne marche pas sous Visual Age ou un IDE de ce type puisque c'est une base de donnée à la place d'un répertoire.

Core Breaker :)
0