package COM.JAVA.STUDY.REFLECT;
public class Private {
private String name = "zhangsan";
private void setName(String name){
this.name = name;
}
public String getName() {
return name;
}
}
package COM.JAVA.STUDY.REFLECT;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class PrivateTester{
public static void main(String[] args) throws Exception{
Private p = new Private();
// Private.class;
System.out.println("最早的"+p.getName());
Class> classType = p.getClass();
Field field = classType.getDeclaredField("name");
field.setAccessible(true);
field.set(p, "lisi");
System.out.println("第一次修改的"+classType.getDeclaredMethod("getName", new Class[]{}).invoke(p, new Object[]{}));
Object obj = classType.newInstance();
Method method = classType.getDeclaredMethod("setName", new Class[]{String.class});
method.setAccessible(true);
method.invoke(obj, "第二个对象");
Private pobj = (Private) obj;
System.out.println("第二次修改的"+ pobj.getName());
}
}
public class Private {
private String name = "zhangsan";
private void setName(String name){
this.name = name;
}
public String getName() {
return name;
}
}
package COM.JAVA.STUDY.REFLECT;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class PrivateTester{
public static void main(String[] args) throws Exception{
Private p = new Private();
// Private.class;
System.out.println("最早的"+p.getName());
Class> classType = p.getClass();
Field field = classType.getDeclaredField("name");
field.setAccessible(true);
field.set(p, "lisi");
System.out.println("第一次修改的"+classType.getDeclaredMethod("getName", new Class[]{}).invoke(p, new Object[]{}));
Object obj = classType.newInstance();
Method method = classType.getDeclaredMethod("setName", new Class[]{String.class});
method.setAccessible(true);
method.invoke(obj, "第二个对象");
Private pobj = (Private) obj;
System.out.println("第二次修改的"+ pobj.getName());
}
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29227735/viewspace-1256713/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29227735/viewspace-1256713/