2013-01-14 10 views
7

Sto utilizzando il pacchetto di Google Reflections per creare un indice di tutte le classi disponibili per la chiamata. Il seguente codice deve restituire tutte le classi che vengono caricati nella JVM:Utilizzo di Google Reflections per ottenere un elenco di tutte le classi - ma java. * Sembra essere mancante

List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); 
classLoadersList.add(ClasspathHelper.contextClassLoader()); 
classLoadersList.add(ClasspathHelper.staticClassLoader());      
Reflections reflections = new Reflections(new ConfigurationBuilder() 
     .setScanners(new SubTypesScanner(false), new ResourcesScanner()) 
     .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0])))); 
Set<Class<? extends Object>> allClasses = 
     reflections.getSubTypesOf(Object.class); 

rilevo che il set restituisce non contiene nulla in Java * dominio.. Qualcuno può avere familiarità con il pacchetto Reflections e consigliarmi come ottenerli? Grazie!

risposta

7

Google riflessioni possono essere utilizzati per ottenere tutte le classi, tra cui Java *, anche se non è il suo primo uso..

Reflections reflections = new Reflections(
    ClasspathHelper.forClass(Object.class), 
    new SubTypesScanner(false)); 

E oltre:

Set<String> allClasses = 
    reflections.getStore().getSubTypesOf(Object.class.getName()); 
+0

vedere di più [qui] (http://stackoverflow.com/a/15313028/1424321) – zapp

+0

Grazie mille! Sto cercando questo per 2 giorni. –

Problemi correlati