反射机制原理的深度理解2017-12-26

首先我们编写person.java文件如下:
反射机制原理的深度理解2017-12-26
文章图片
然后创建测试反射机制的类
反射机制原理的深度理解2017-12-26
文章图片
原理解析:
【反射机制原理的深度理解2017-12-26】要理解反射机制的实现过程,首先要明白几个知识点
如图1中Person.java是一个java的原文件,原文件经过编译会得到一个Person.class的二进制文件,然后类加载器ClassLoader加载 生成的Person.class 到JVM
在jvm中就会生成一个与Person.class对应的Class类型的文件,这个文件中有class文件中的属性,方法,注解,构造方法等Person.class的元信息。我们个这个文件起了对象名叫clazz.
所以可以通过创建Class类型的对象clazz(clazz是我们自己命名的),clazz就是元信息文件的对象,使用该对象调用newInstance()就能创建出一个Person类型的对象,同理也可以通过clazz来创建出Person类中的其它成员(方法,构造方法,属性等)
创建出的方法way,就可以通过关键字invoke来传入对象作为参数来执行,因为方法的执行,一定是通过对象来调用的。所以必须要有对象这个参数的传入。


反射机制原理的深度理解2017-12-26
文章图片
工作真实环境应用:
三大框架底层全部是基于反射机制实现的。xml配置类的唯一标识syn.reflection.study.Person。
比如有一个付款的接口PayInterface,我们的付款方法是有微信,支付宝,银联支付等,当我们付款的时候支付宝付款的类为AliPayImpl,并且AliPayImpl implements PayInterface
当我们点击支付宝支付的时候
其实后台就会有
String payImpl ="syn.study.AliPayImpl"
传到
Class.newInstance(payImpl )
就会动态创建对象了。也就是通过发射来在程序运行过程中创建对象,而不是事先new一个出来。

    推荐阅读