您的位置:首页 > 编程语言 > Java开发

【转载】JAVA利用反射机制访问private成员和方法

2015-03-06 12:43 681 查看
原文地址:http://lyg5623.blog.163.com/blog/static/53274011201002733119771/

class Normal {

    private String ss="ddd";

    private void ga(int i){

        System.out.println("ga!!"+i);

    }

}

 

public class Privateclassaccess {

    public static void main(String[]args) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, NoSuchMethodException, InvocationTargetException{

        Field field=Class.forName("Normal").getDeclaredField("ss");

        field.setAccessible(true);

        Normal n=new Normal();

        System.out.println(field.getType().toString());

        System.out.println(field.getName());

        System.out.println(field.getModifiers());

        Object s=field.get(n);

        System.out.println(s);

        String x="omg";

        field.set(n, x);

        System.out.println(field.get(n));

        Method method=Class.forName("Normal").getDeclaredMethod("ga", new Class[]{int.class});

        method.setAccessible(true);

        method.invoke(n, 3);

    }

}

输出:

class java.lang.String

ss

2

ddd

omg

ga!!3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: