一、反射是什么?
Java反射机制是在运行状态中,对于任何一个类(class文件),都能够知道这个类地所有属性和方法;对于任何一个对象,都能够调用它地任何一个方法和属性;这种动态获取地信息以及动态调用对象方法的功能称为java语言的反射机制。
动态获取类中信息,就是java反射。
可以理解为对类的解剖。
如果想要对指定名称的字节码文件进行加载并获取其中的内容并调用,这时就使用到了java反射技术。
反射的好处:大大的增强了程序的扩展性
二、反射的基本步骤
- 获得Class对象,即获取到指定名称的字节码文件对象。
- 实例化对象,获得类的属性、方法或构造函数。
- 访问属性、调用方法、调用构造函数创建对象。
1.获取Class对象,有三种方式
1:通过每个对象都具备的方法getClass来获取。
Class c2 = stu.getClass()
弊端:必须要创建该类对象,才可以调用getClass方法。*
2:每一个数据类型(基本数据类型和引用数据类型)都有一个静态的属性class。
Class c1 = Student.class
弊端:必须要先明确该类。
上面这两种方式不利于程序的扩展,因为都需要在程序使用具体的类来完成。
3:使用的C