如何枚举包中的所有类并将它们添加到列表中?

我需要枚举包中的所有类并将它们添加到列表中。单个类的非动态版本如下所示:


List allClasses = new ArrayList();

allClasses.add(String.class);

如何动态地将所有类添加到包及其所有子包中?


更新:阅读了早期的答案后,我正在尝试解决另一个次要问题,这是绝对正确的,所以让我说一下。我知道这是可能的,因为其他工具也可以做到。在这里看到新问题。


更新:再次阅读本文,我可以了解它是怎么被误读的。编译后,我希望从文件系统中枚举所有MY PROJECT'S类。


红糖糍粑
浏览 515回答 3
3回答

不负相思意

当前列出给定包中所有类的最健壮的机制是ClassGraph,因为它可以处理最广泛的类路径规范机制,包括新的JPMS模块系统。(我是作者。)List<String> classNames;try (ScanResult scanResult = new ClassGraph().whitelistPackages("my.package")&nbsp; &nbsp; &nbsp; &nbsp; .enableClassInfo().scan()) {&nbsp; &nbsp; classNames = scanResult.getAllClasses().getNames();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java