如何递归加载特定包中的类

时间:2017-10-23 12:26:41

标签: java packages

我正在创建一个模块化应用。以下是我的设计:

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等等。

0 个答案:

没有答案