最近在重温反射的知识,收获仍是不少的,感受知识就是在不一样的时间去看会有更深的理解数据库
在刚学反射时不管是什么教材或者网上的资料都在讲述着反射的重要性,可是咱们学习过程当中却历来都用不到,相信不少朋友跟我同样,常常会产生“反射到底有什么用”的问题,我在重温了反射的知识点后,终于有一点理解了反射的做用,想来跟你们分享一下我对于反射的见解。框架
1·、你们都知道反射又称之为动态编译,网上关于动态编译的解释不少,个人理解就是代码能够不用那么死板了。学习
假如说如今咱们有一个接口A,A有两个实现类B和C,咱们在编写代码的过程当中若是不用反射机制,就可能要将B、C的对象建立出来,以备后用,这还只是两个实现类,加入实现类不少怎么办,这时就须要反射机制了,由于反射所用代码为Class.forName("类的全类名"),这个类的全类名咱们就能够经过配置文件传入,并且是在须要时才传入,使得代码变得灵活起来。对象
二、框架的底层大多使用了反射,这是为何?接口
学过框架的都知道框架基本是使用配置文件来将咱们的运行环境搭建好,这里就是反射的经典运用,由于对于咱们的项目,各类配置(包括数据库链接,各类路径等)都是不一样的,因此就须要反射的机制来动态的获取。源码
三、咱们日常会用到反射吗?编译
其实对于这个问题我相信大部分人都有过迷惑,由于反射除了在学习数据库链接过程当中使用了一下Class.forName()之外,好像基本就没用过了。不过请你相信反射确定是有用的,好比说对于框架底层源码的理解等。环境搭建
总结:反射的做用很大,须要咱们去理解它,可让咱们更好的去阅读框架的底层代码。配置