大家都知道C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的动态相关机制:Reflection。
接下来我们就来讲讲如何通过Java 的反射机制动态的加载模块,
下面就来说什么是动态机制,废话不多说直接上案例。
源码下载 https://github.com/1104436107/reflection.git
最好是能够下载源码跑一下,
/** * 加载资源文件 */ private void loadModules() { mModuleList = new ArrayList<FunctionModule>(); ModuleControllerCore moduleControllerCore = new ModuleControllerCore(MainActivity.this, R.raw.module_config); try { String moduleConfigName = "MainModuleList"; mModuleList.addAll(moduleControllerCore.readModuleList(moduleConfigName)); for (FunctionModule item : mModuleList) { if (item instanceof ModuleLoadDataInf) { try { ((ModuleLoadDataInf) item).loading(); } catch (Exception e) { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } }
加载的类名我们基本会配置到下面的这个文件夹
动态加载类主要是这里的代码