浏览 2978 次
锁定老帖子 主题:JAVA动态代理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-07-24
package com.liuc.test.think.chapter14; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class SimpleDynamicProxy { public static void consumer(Interface inte){ inte.doSomething(); inte.somethingElse("bonbo"); } public static void main(String[] args) { RealObject realObject=new RealObject(); consumer(new RealObject()); System.out.println("================="); Interface proxy=(Interface) Proxy.newProxyInstance(Interface.class.getClassLoader(), new Class[]{Interface.class}, new DynamicProxyHandler(realObject)); consumer(proxy); } } class DynamicProxyHandler implements InvocationHandler{ private Object proxied; public DynamicProxyHandler(Object proxied) { this.proxied=proxied; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("******proxy:"+proxy.getClass()+",method:"+method+",args:"+args); if (args!=null) { for(Object arg:args){ System.out.println(" "+arg); } } return method.invoke(proxied, args); } } interface Interface{ void doSomething(); void somethingElse(String arg); } class RealObject implements Interface{ @Override public void doSomething() { System.out.println("doSomething"); } @Override public void somethingElse(String arg) { System.out.println("somethingElse:"+arg); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-07-27
LZ 不点评一下? 就发个代码?
|
|
返回顶楼 | |
发表时间:2012-07-27
这也上首页
|
|
返回顶楼 | |
发表时间:2012-07-27
lovexp2010 写道 LZ 不点评一下? 就发个代码?
昨天本来写了个来龙去脉的,结果昨天从可视化编辑器切换到BBCode编辑器的时候出问题了,索性最后就贴了代码,没写自己的思路 |
|
返回顶楼 | |
发表时间:2012-07-27
vickatxmu 写道 这也上首页
我也很意外 |
|
返回顶楼 | |