我正在创建一个模块化应用。以下是我的设计:
my_app_package
PluginsLoader.java
plugins_package
plugin_A
Start.java
plugin_a_inner_package_1
plugin_a_inner_package_2
plugin_a_inner_package _3
plugin_B
Start.java
plugin_b_inner_package_1
plugin_b_inner_package_2
plugin_C
Start.java
plugin_c_inner_package_1
我想递归遍历 plugins_package 根目录包中的所有 Start.java
类,但不能通过任何 pluginA,pluinB等* _inner_package s。
我怎样才能有效地做到这一点。
我知道 my_app_package.plugins_package.*.Start.java
不起作用,但它吸收了我所寻求的想法。
提前谢谢大家。
更新
我想以递归的方式遍历plugins_package包的根目录中的所有Start.java类,但不要遍历任何 pluginA,pluinB 等等_inner_packages,如 {{1 }} 即可。通过Java Reflections,我将了解 plugins_package 中的所有内容。
plugin_a_inner_package_1
我只想浏览一个插件包的root包,比如 plugins_package.plugin_A ,然后走出Reflections reflections = new Reflections("my_app_package.plugins_package");
Set<Class<? extends Object>> allClasses = reflections.getSubTypesOf(Object.class);
,然后对所有其他插件包重复这个plugin_B,plugin_C等等。