1、首先我们都知道,java是面向对象的,所以后端是由一个一个class来实现的,而所谓的反射机制,就是指在java程序运行的夸臾蓠鬏过程中,任何的一个class都可以获取这个class的任意一个对象,以及使用这个class的任何一种方法。乍一看,可能读者觉得这个和public的定义没有什么不同,但是我要说的是这个区别可太大了,反射指的是在程序运行时的调用而不是程序编写的时候,也就是你在一个class里面定义一个类person的实例,而不是类!这个对象可以在任何class调用,这个方法是要比public高级得多的方法。
2、简单的来说,java的反射就是把java类的各种东西映射为一个个java对象。下图是java反射的知识框图,这一些也就是java反射的基本知识,下面我们就来快速的学习和上手反射机制。
3、有一点我们必须要了解,那就是计算机内存中会保存所有类的有且只有一个类的class,需要读其他类的时候必须通过jvm从计算机硬盘里面去读取。也就是在运行期间同一时间一个类只有1个class产生。
4、这里来举一个实例讲解一下反射,如图所示:第一个有了来调用,这个不是反射,只是有了类之后调用里面的public对象而已。第二个在使用前有一个条件,那就是必须要import所用的类的包,不仅麻烦,而且依赖性太强,还会导致程序效率降低。第三个就是我们最常使用的反射了,注意这个字符串所指的类名必须是路径!!!当然也可以不在这里写类名,可以在配置文件中统一进行字符串的给定,这个就相当的利于程序的开发了。
5、下面就直接来举一个配置在配置文件(Properties)里面进行调用的例子吧,我相信看完这一个例子以后,读者就可以了解和使用java反射机制了。
6、先来看一下我们构建的Student类:我们这里只定义了一个方法就是show(),方法功能是显示“is show()”
7、这个是Properties文件,放在项目文件夹下,我这里的命名是pro.txt。它定义了使用的类地址还有使用的方法名。一定是类的地址,而不是类名称!!!
8、这个就是测试类了,通过调用前面写的Properties文件就可以通过反射机制来调用我们的Student类的方法了。是不是很方便呢?ps:调用类的对象会比方法复杂,在教程二中再说明。