Java记录 -88- 利用反射机制调用对象的私有方法和属性

来源:互联网 发布:邑通软件科技有限公司 编辑:程序博客网 时间:2024/06/05 04:55

利用反射机制调用对象的私有方法和属性

import java.lang.reflect.Field;import java.lang.reflect.Method;public class TestPrivate {    public static void main(String[] args) throws Exception{        //使用反射机制调用对象的私有方法        Private p = new Private();        Class<?> classType = p.getClass();        Method method = classType.getDeclaredMethod("sayHello", new Class[]{String.class});        method.setAccessible(true); //压制java的访问控制检查        String str = (String)method.invoke(p, new Object[]{"tom"});        System.out.println(str);                //使用反射机制调用对象的私有属性        Field field = classType.getDeclaredField("name");        field.setAccessible(true);        field.set(p, "lisi");        String name = (String)field.get(p);        System.out.println(name);    }}class Private{    private String name = "zhangsan";        private String sayHello(String name){        return "hello "+name;    }}


阅读全文
0 0
原创粉丝点击