我正在使用 google Reflections 包来构建可调用的所有类的索引。以下代码应该返回 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);
我注意到它返回的集合不包含 java.* 域中的任何内容。熟悉 Reflections 包的人可以建议我如何获取这些包吗?谢谢!
Google Reflections 可用于获取所有类,包括 java.*,尽管这不是其主要用途。
Reflections reflections = new Reflections(
ClasspathHelper.forClass(Object.class),
new SubTypesScanner(false));
然后:
Set<String> allClasses =
reflections.getStore().getSubTypesOf(Object.class.getName());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)