如何利用Java反射机制修改private值
/**
- 这是一个测试反射的类:
- 1、返回Class对象
- @
Class<?> clazz = Class.forName(“packageName.ClassName”);
- 2、返回一个对象
- @
Object object = clazz.getConstructor(para.class).newInstance(Object para)
- 3、返回一个方法
- @
Method method = clazz.getMethod(String methodName,Class … paraType)
- 4、方法执行
- @
method.invoke(Object Instance,Object … para)
- 5、返回属性
- @
Field field = clazz.getFields()
- @
Field[] fields = clazz.getFields()
- @
Field[] allField = clazz.getDeclareFields()
可以获得所有的属性值 - 6、获取私有属性值,并把值修改
- @
Field field = clazz.getDeclareField(String partName)
- @
field.setAsseccable(true)
- @
field.set(Object new Object,Object value)
- 7、获取私有方法,并使用
- 类比上面7
- 8、获取私有构造器,并使用
- @author 78289
- @version 1.0
//* - 这是一个测试反射的类:
- 1、返回Class对象
- @
Class<?> clazz = Class.forName(“packageName.ClassName”);
- 2、返回一个对象
- @
Object object = clazz.getConstructor(para.class).newInstance(Object para)
- 3、返回一个方法
- @
Method method = clazz.getMethod(String methodName,Class … paraType)
- 4、方法执行
- @
method.invoke(Object Instance,Object … para)
- 5、返回属性
- @
Field field = clazz.getFields()
- @
Field[] fields = clazz.getFields()
- @
Field[] allField = clazz.getDeclareFields()
可以获得所有的属性值 - 6、获取私有属性值,并把值修改
- @
Field field = clazz.getDeclareField(String partName)
- @
field.setAsseccable(true)
- @
field.set(Object new Object,Object value)
- 7、获取私有方法,并使用
- 类比上面7
- 8、获取私有构造器,并使用
- @author 78289
- @version 1.0
*/