反射-概述和获取字节码class对象的三种方式
反射-概述
反射:框架设计的灵魂
框架:办成平软件,可以在框架的基础上进行软件开发,简化编码
反射:将类的各个组成部分封装为其他对象,这就是反射机制
好处:
1.可以在程序运行过程中,操作这些对象
2.可以解耦,提高程序的可扩展性好

反射-获取字节码class对象的三种方式
public static void main(String[] args) throws Exception { //获取Person的Class对象 Class personClass =Person.class; //1.Fied[] getFields()获取所有public修饰得到成员变量 Field[] field = personClass.getFields(); for (Field field1 : field) { System.out.println(field1); } System.out.println("--------------------"); //2.Field getField(String name) Field a = personClass.getField("a"); //获取成员变量a的值 Person p = new Person(); Object o = a.get(p); System.out.println(o); //设置a的值 a.set(p,"张三"); System.out.println(p); System.out.println("=================="); //Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符 Field[] declaredFields = personClass.getDeclaredFields(); for (Field declaredField : declaredFields) { System.out.println(declaredField); } //Field getDeclaredField(String name) Field d = personClass.getDeclaredField("d"); //忽略访问权限修饰符的安全检查 //暴力反射 d.setAccessible(true); Object o1 = d.get(p); System.out.println(o1); }

浙公网安备 33010602011771号