利用java反射机制调用类的私有方法(推荐)
程序员文章站
2024-03-13 13:33:03
试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能...
试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了。。
我写的一段简易实例代码如下:
import java.lang.reflect.invocationtargetexception; import java.lang.reflect.method; /** * @author thomaslwq * @version 创建时间:sep 4, 2012 9:53:49 pm * 类说明 */ public class reflectiontest { public static void setobjectcolor(object obj) throws securityexception, nosuchmethodexception, illegalargumentexception, illegalacces***ception, invocationtargetexception{ class cls = obj.getclass(); //获得类的私有方法 method method = cls.getdeclaredmethod("privatemethod", null); method.setaccessible(true); //没有设置就会报错 //调用该方法 method.invoke(obj, null); } public static void main(string args[]) throws securityexception, illegalargumentexception, nosuchmethodexception, illegalacces***ception, invocationtargetexception{ setobjectcolor(new mytest()); } } //测试类 class mytest{ public void setmytest(){ system.out.println("setmytest"); } /** 类的私有方法 **/ private void privatemethod(){ system.out.println("调用了 private method"); } }
以上这篇利用java反射机制调用类的私有方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: Paypal实现循环扣款(订阅)功能
下一篇: NoteBook 资讯