我需要枚舉包中的所有類并將它們添加到列表中。單個(gè)類的非動(dòng)態(tài)版本如下所示:List allClasses = new ArrayList();allClasses.add(String.class);如何動(dòng)態(tài)地將所有類添加到包及其所有子包中?更新:閱讀了早期的答案后,我正在嘗試解決另一個(gè)次要問題,這是絕對(duì)正確的,所以讓我說一下。我知道這是可能的,因?yàn)槠渌ぞ咭部梢宰龅健T谶@里看到新問題。更新:再次閱讀本文,我可以了解它是怎么被誤讀的。編譯后,我希望從文件系統(tǒng)中枚舉所有MY PROJECT'S類。
3 回答

不負(fù)相思意
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)前列出給定包中所有類的最健壯的機(jī)制是ClassGraph,因?yàn)樗梢蕴幚碜顝V泛的類路徑規(guī)范機(jī)制,包括新的JPMS模塊系統(tǒng)。(我是作者。)
List<String> classNames;
try (ScanResult scanResult = new ClassGraph().whitelistPackages("my.package")
.enableClassInfo().scan()) {
classNames = scanResult.getAllClasses().getNames();
}
添加回答
舉報(bào)
0/150
提交
取消