java反射理解

来源:互联网 发布:ubuntu caffe cuda8 编辑:程序博客网 时间:2024/06/06 15:38

1.通过反射获取私有的构造方法,并创建对象,此方法即可破解单例模式,getDeclaredConstructor()     

Class c=Class.forName("test.test01");
        Constructor co=c.getDeclaredConstructor();//获取私有的构造方法
        co.setAccessible(true);  //设置访问权限
        test01 t=(test01) co.newInstance();   //创建对象
        t.get("123");    //调用方法

2.通过反射获取私有的方法

Class c=Class.forName("test.test01");

  Method m=c.getDeclareMethod("getName",String.class);   获取私有的方法

  m.setAccessible(true);      获取访问权限

 test03 t=new test03();      创建对象

 m.invoke(t,"我是谁");     调用私有的方法

3.通过反射获取私有的属性

  Class c=Class.forName("test.test04");  

Field f=c.getDeclaredField("id");   获取私有的属性

test04 t=new test04();      创建对象

f.setAccessible(true);   获取权限

f.set(t,110);       设置私有属性的参数



0 0
原创粉丝点击