java的反射机制的理解和代码的分析

来源:互联网 发布:入骨相思知不知全诗 编辑:程序博客网 时间:2024/05/19 17:06

首先要从宏观入手理解什么是反射和弄清反射的作用,这两个基本的理解了,反射的代码什么的就懂了。而且也不用非得把代码背下来。懂原理很重要。

按个人理解,反射就是在模仿虚拟机创建对象的一个过程。回想之前写代码,创建的对象都是直接new出来的。这样就会发现一个问题,你运行一个程序的时候,这个对象就写死了。你创建的时候是什么样那就什么样了,就很死板。比如你玩LOL,直接new的方式创建对象,就相当于每次游戏开始之后我们只能使用一个英雄。使用反射的方式就相当于在游戏开始之后你也可以随意更换英雄。想换啥换啥。这个就是反射的强大之处。它是一种动态加载。也就是它强大的地方。也就是解耦。在程序中的体现就是在项目中,项目的配置并不是一成不变的,比如说数据库,如果想从Mysql数据库切换到Oracle数据库,不用反射的话,就可能会大幅度的更改代码。但是如果利用反射和配置文件,直接改配置文件中的一个值就行。到这你还得深刻理解代码的耦合性,不理解的话也就不用理解了,到后边你进入项目的时候自然就明白了。这就是发射的作用。

然后再说反射,new对象相当于你去饭店吃饭,你是消费者,你点了什么菜厨房的厨师就给你做什么菜,你不用关心厨师怎么做,加了什么调料。反射就相当于你是那个厨师,你得关心做菜的程序,需要什么原材料,加什么调料。所以程序中的反射也是如此,你就脑补虚拟机创建对象的详细过程,要创建一个对象(做一道菜),你得知道需要对象是什么类型(相当于菜系),有什么属性(菜的原材料),属性的类型(原材料的类型,是肉呀,还是蔬菜呀),知道了这些东西之后,它的各种配置就知道了,然后就往一块儿攒呗,攒也得有方法啊,这个方法就是类的set方法,它能给对象的属性赋值。

 

 

 


 



原创粉丝点击