我的理解是:
代理实例调用发法,他会把方法传出去,究竟要传到哪里?所以内部应该会有一个接受这个代理实例的调用,调用invoke(Object proxy,Method method,Object[] args);这个方法接着把那个代理付给Object proxy。这样就明确了我们的代理实例了,就可以动态代理了。比如
Subject subject = (Subject) Proxy.newProxyInstance(classType
.getClassLoader(), realSubject.getClass().getInterfaces(),
handler);
subject.request();
subject这个代理实例。当他调用方法时,内部就自动的会把subject赋值给Object proxy,接着就会调用invoke(Object proxy,Method method,Object[] args);
方法,就可以执行我们想做的了。
|