一、简介
Java反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
优点:可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度。
二、功能
1、在运行时判断任意一个对象所属的类。
2、在运行时构造任意一个类的对象。
3、在运行时判断任意一个类所具有的成员变量和方法。
4、在运行时调用任意一个对象的方法。
5、生成动态代理。
三、反射的使用
public class Student{
private int age = 24;
private String name = "fan";
......
public void study(){
System.out.println("study()方法");
}
}
1、得到Class的方式
第一种:
Student s = new Student ();
Class c = s.getClass();
第二种:
Class c = Student.class;
第三种:
Class c = Class.forName("com.beans.Student");
2、通过 Class 类获取成员变量、成员方法、接口、超类、构造方法
3、根据反射获取父类属性
根据反射获得的子类 Class 对象在调用 getSuperclass() 方法获取父类对象,然后在通过父类对象去获取父类的属性值。