3

我说的是反射库。是否有可能获得我让代码编译的项目中包含的所有包的列表?

我已经尝试使用以下代码括号,但我不想插入项目名称。

Reflections reflections = new Reflections(/* Project name here... */);

     Set<Class<? extends Object>> allClasses = 
         reflections.getSubTypesOf(Object.class);
4

1 回答 1

0

不使用 ronmamo/reflections 而是使用Google Guava 的 ClassPath,可以执行以下操作:

Set<ClassInfo> classInfos = ClassPath.from(Main.class.getClassLoader()).getTopLevelClassesRecursive("org.spongepowered");
List<String> packageNames = classInfos.stream().map(classInfo -> classInfo.getPackageName()).distinct().collect(Collectors.toList());
于 2016-12-17T01:26:05.023 回答