我理解的就是做框架用的。你不能用常规的方法实例化一个对象出来,然后直接调用对象的方法,或者使用对象的属性。反射就是你不知道你要调用的是哪一个类(学到后面web你会发现,就比如处理数据库,有些人使用的是JDBC,有些人使用的是c3p0,这个时候你事先就不知道将来可能会用到哪个类了,而你又不想把类名写死在程序中的话,你可以通过配置文件将类名配置好,到时候可以读取出来)所以你就不能直接用 对象.方法名 来调用方法。你只能根据配置文件传过来的类名来反射,得到字节码,然后通过反射的一些基本知识来调用 属性(其实叫字段)和方法,这样子能优化程序,以后不需要改动源代码只改配置文件就达到了修改程序的目的。而且不用改原来的java代码。
而反射的作用知道了,那你差不多也能推出反射有哪些功能了,无非就是获取构造函数,能够通过构造函数实例化,获取字段,获取方法,调用方法这些功能了。具体细节问题那就要多看视频,多敲几遍代码多总结了。 |