首页 > 代码库 > 反射动态的获取字段&暴力访问

反射动态的获取字段&暴力访问

import java.lang.reflect.Field;public class ReflectDemo3 {    public static void main(String[] args) throws Exception {                /*         * 获取类中的成员         * 反射字段。         */            getFieldDemo();            }        public static void getFieldDemo() throws Exception{                String className = "cn.qujianlei.domain.Person";        Class clazz = Class.forName(className);                //获取指定age字段//        Field field = clazz.getField("name");//该方法只获取公有的                Field field = clazz.getDeclaredField("name");//获取权限提升                //要对非静态的字段操作必须有对象。        Object obj = clazz.newInstance();        //使用父类的方法将访问权限检查的能力取消        field.setAccessible(true);//暴力访问,能访问                field.set(obj, "lisi");//设置值                System.out.println(field.get(obj));            }    }
public class Person {            private String name;    private int age;    public Person(String name, int age) {        super();        this.name = name;        this.age = age;    }        public Person() {        super();        System.out.println("person run");            }        public void show(){        System.out.println("person show run");    }        public static void staticShow(){        System.out.println("person static show run");    }        public void paramShow(String name,int age){        System.out.println("show:"+name+"---"+age);    }        }

 

反射动态的获取字段&暴力访问