What:什么是反射?
java反射机制是在运行状态中,对于任何一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能调用其的任何一个方法和属性;这样动态获取以及调用对象方法和属性的功能叫做反射。
How:如何实现反射?
/** * 学生实体类 * Created by ASUS on 2018/5/4 */ @Component("Student") public class Student { // @Value("${student.name}") private String name; // @Value("${student.age}") private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(String name, int age) { this.name = name; this.age = age; } public Student() { } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
其他具体实现可以看反射的api,就不一一实现了。
Why:为什么会有反射机制?
因为java是静态语言,无法动态生成类和动态操作类,但在应用中我们又需要动态操作类,而反射机制正好可以。
where:哪里应用过反射机制?
反射其实用的挺多的,spring底层很多地方就是有反射的,比如IOC控制反转,bean的生成。jdk动态代理模式,
逆向代码,进行反编译。
我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。