类对象:类对象,就是用于描述这种类,都有什么属性,什么方法的
import lv;
public class Lvmeieh{ String name, ...}
获取类对象(导致静态属性被初始化):方法1 Class.forName(lv.Lvmiehe);方法2lvmiehe.class;方法3 new lvmeihe().getClass();
创建一个对象:1 获取类对象; Class meihe = Class.forName(lv.Lvmeihe);
2获取构造器:Constructor c = meihe.getConstructor();
3通过构造器实例化:Lvmeihe l = (Lvmeihe)c.newInstance();
访问name字段属性:Field f = l.getDeclaredField("name"); getDeclaredField方法可以湖区privat的字段,但不能访问该字段的值
修改字段的值:f.set(l,"lvmeihe"); 如果是private属性:要setAccessible(true);
调用方法:Method m = l.getMethod("setName");
m.invoke(l,"value值");
反射的作用:spring的依赖注入,控制反转,都用到了反射,减少代码的耦合度