java反射-访问private属性和方法
2013-04-29 23:24
453 查看
Private类中有私用成员变量和私有方法,正常情况下外部类是无法访问私有方法和改变私有成员变量的值
public class Private {
private String names = "zs";
private String sayHello(String name){
return "say:"+name;
}
public String getNames(){
return names;
}
}
通过反射可实现对私有方法的访问和改变私有成员变量的值
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class TestPrivate01 {
public static void main(String[] args) throws Exception {
Private p = new Private();
//Private p2 = new Private();
//System.out.println(p.getClass()==p2.getClass());
Class<?> classType = p.getClass();
Method privatemethod = classType.getDeclaredMethod("sayHello", new Class[]{String.class});
Field field = classType.getDeclaredField("names");
//将访问权限控制检查压制(suppress)
privatemethod.setAccessible(true);
field.setAccessible(true);
field.set(p, "ls");
System.out.println(privatemethod.invoke(p, new Object[]{"Hello"}));
System.out.println(p.getNames());
}
}
public class Private {
private String names = "zs";
private String sayHello(String name){
return "say:"+name;
}
public String getNames(){
return names;
}
}
通过反射可实现对私有方法的访问和改变私有成员变量的值
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class TestPrivate01 {
public static void main(String[] args) throws Exception {
Private p = new Private();
//Private p2 = new Private();
//System.out.println(p.getClass()==p2.getClass());
Class<?> classType = p.getClass();
Method privatemethod = classType.getDeclaredMethod("sayHello", new Class[]{String.class});
Field field = classType.getDeclaredField("names");
//将访问权限控制检查压制(suppress)
privatemethod.setAccessible(true);
field.setAccessible(true);
field.set(p, "ls");
System.out.println(privatemethod.invoke(p, new Object[]{"Hello"}));
System.out.println(p.getNames());
}
}
相关文章推荐
- java利用反射访问类的私有(private)属性及方法
- java利用反射访问类的私有(private)属性及方法
- java 反射方式访问私有属性和方法
- Java内存理解 && 反射访问私有属性或方法
- Java反射之访问私有属性或方法
- java 反射调用 私有构造类中 private static final 属性的方法
- Java访问私有属性(不使用getter方法和反射)
- java 反射 访问private 方法
- java反射应用--调用方法与访问属性
- Java访问类中private属性和方法
- Java中利用反射对类的hidden成员方法和属性的访问
- Java反射之访问私有属性或方法
- Java反射之访问私有属性或方法
- Java反射获取private属性和方法(子类,父类,祖先....)
- Java反射获取private属性和方法(子类,父类,祖先....)
- java反射访问私有属性和方法
- Java反射的三种实现方式,访问私有方法和私有属性
- Java的动态性支持学习三 - 反射机制 取消属性、方法、构造器的访问限制
- 【转载】JAVA利用反射机制访问private成员和方法