使用Google Reflections获取所有类的列表——但java.*似乎缺失了

使用Google Reflections获取所有类的列表——但java.*似乎缺失了,java,class,reflections,Java,Class,Reflections,我正在使用GoogleReflections包为所有可调用的类建立索引。下面的代码应该返回JVM中加载的所有类: List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); classLoadersList.add(ClasspathHelper.contextClassLoader()); classLoadersList.add(ClasspathHelper.staticClassLoade

我正在使用GoogleReflections包为所有可调用的类建立索引。下面的代码应该返回JVM中加载的所有类:

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);
List classLoadersList=newlinkedlist();
添加(ClasspathHelper.contextClassLoader());
添加(ClasspathHelper.staticClassLoader());
反射反射=新反射(新配置生成器()
.setScanners(新的子扫描程序(false),新的资源扫描程序()
.setURL(ClasspathHelper.forClassLoader(classLoaderList.toArray(新类加载器[0]));

Set并非所有类都由普通类加载器加载;有些是由引导类加载器加载的,以加快速度,这可以通过本机编码(因此无法从Java代码中访问)。请参阅此消息:

请参阅此问题以了解其他选项


Google Reflections可用于获取所有类,包括java.*,尽管它不是它的主要用途

Reflections reflections = new Reflections(
    ClasspathHelper.forClass(Object.class), 
    new SubTypesScanner(false));
除此之外:

Set<String> allClasses = 
    reflections.getStore().getSubTypesOf(Object.class.getName());
设置所有类=
reflections.getStore().getSubscriptsof(Object.class.getName());

非常感谢!我要找这个两天。