我需要枚举包中的所有类并将它们添加到列表中。单个类的非动态版本如下所示:List allClasses = new ArrayList();allClasses.add(String.class);如何动态地将所有类添加到包及其所有子包中?更新:阅读了早期的答案后,我正在尝试解决另一个次要问题,这是绝对正确的,所以让我说一下。我知道这是可能的,因为其他工具也可以做到。在这里看到新问题。更新:再次阅读本文,我可以了解它是怎么被误读的。编译后,我希望从文件系统中枚举所有MY PROJECT'S类。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
当前列出给定包中所有类的最健壮的机制是ClassGraph,因为它可以处理最广泛的类路径规范机制,包括新的JPMS模块系统。(我是作者。)
List<String> classNames;
try (ScanResult scanResult = new ClassGraph().whitelistPackages("my.package")
.enableClassInfo().scan()) {
classNames = scanResult.getAllClasses().getNames();
}
添加回答
举报
0/150
提交
取消