黑马程序员技术交流社区
标题:
动态代理
[打印本页]
作者:
史晓霞
时间:
2011-11-9 08:44
标题:
动态代理
构造方法接受一个InvocationHandler对象,接受对象了要干什么用?
作者:
成杰
时间:
2011-11-9 10:41
接收的这个对象,在这个对象中,要实现增强的功能。
作者:
海林
时间:
2011-11-9 11:36
InvocationHandler接口中定义的invoke方法接受的3个参数分别是,Object proxy, Method method, Object[] args 他们分别对应 对象.add(“xxx”)这句话的 对像 ,add()方法,xxx参数。
不知道这么说你能明白吗? 就是说你不是用动态代理吗? 要用动态代理完成指定的功能,那么你一定有调用动态代理的对象不是? 那个对象对应的就是object proxy 调用那个对象的方法就是 method 用于反射,调用方法传递的参数就存放在object类型的args数组中 。
作者:
せR3n、何必装纯
时间:
2011-11-10 13:53
java 代码
public class DynamicProxy implements InvocationHandler {
private Object originalObj;
public Object bind(Object obj){
this.originalObj = obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),
obj.getClass().getInterfaces(),
this);
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
System.out.println("before invoking....");
Object obj = method.invoke(originalObj,args);
System.out.println("after invoking....");
return obj;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2