使用反射机制修改对象的私有属性值

96
EakonZhao
0.2 2017.04.10 19:04* 字数 124

import java.lang.reflect.Field; class Person { private String name = "zhao"; } public class ReflectTest { public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, InstantiationException, ClassNotFoundException{ Object person = Class.forName("Person").newInstance();//实例化对象 Class perClass= person.getClass(); Field field = perClass.getDeclaredField("name");//获得变量名为name的私有属性 field.setAccessible(true);//设置该属性的访问标记为true System.out.println("没有使用反射机制修改name之前:name="+field.get(person)); field.set(person, "hh"); System.out.println("使用反射机制修改name之后:name="+field.get(person)); } }

私有属性name值修改前后对比

Java知识