阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_11_反射_案例







student定义sleep方法






用反射+配置文件


定义配置文件



src下new file。新建











加载配置文件。Properties里面有一个load方法,可以加载.properties结尾的配置文件 加载到内存中




获取字节码文件对应的类的加载器,用这个类加载器加载到内存

这样就有了ClassLoader


ClassLoader下面以偶getResource的方法是获取资源的路径


getResourceAsStream获取资源对应的字节流

这样就返回了字节流

把字节流传到load方法里面,就完成了加载了。 
再抛出异常

抛出IO异常

获取配置文件中定义的数据

获取到要加载的全类名,以及要加载的方法的方法名

 

反射

根据全类名返回一个class对象

创建对象 newInstance()


获取方法对象,暂时任务是 无参的

invoke执行方法

 

运行程序



现在配置的Person类的eat方法


修改配置文件 Student的sleep的方法



这就是框架的基本内部原理

最终目录结构




 

posted @ 2019-08-02 11:23  高山-景行  阅读(127)  评论(0编辑  收藏  举报