2013-01-14 31 views
7

我使用google Reflections包來構建所有可用於調用的類的索引。下面的代碼應該返回了在JVM加載的所有類:使用Google Reflections獲取所有課程的列表 - 但java。*似乎缺失

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); 

我注意到,它返回集不包含在Java的任何*域。熟悉Reflections包的人能否告訴我如何獲得這些信息?謝謝!

回答

7

谷歌的反思可以用來獲得所有課程,包括Java *,雖然這不是它的主要使用。

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

而且比:

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

看到更多的[這裏](http://stackoverflow.com/a/15313028/1424321) – zapp

+0

非常感謝!我正在尋找這2天。 –

相關問題