JavaSE 反射(进阶) 反射修改private成员

来源:互联网 发布:java file exists 编辑:程序博客网 时间:2024/06/11 10:52

JavaSE lecture64

package com.java.reflection;public class PrivateReflect2 {private String name="zhangsan";  //等待被修改的Private成员public String getName(){return name;}}

任务:

修改Private成员name ,使其变成“lisi”

my submit:

package com.java.reflection;import java.lang.reflect.Field;import java.lang.reflect.Method;public class PrivateTest2 {public static void main(String[] args) throws Exception{PrivateReflect2 p2=new PrivateReflect2();Class<?> classType=p2.getClass();Field field=classType.getDeclaredField("name");field.setAccessible(true);//压制JAVA对访问修饰的限制field.set(p2,"Lisi"); //属性设值 setMethod method=classType.getMethod("getName",new Class[]{});String str=(String)method.invoke(p2,new Object[]{});System.out.println(str);}}

输出:

lisi


0 0
原创粉丝点击