1、类似于反射中的invoke,功能底层调用代理功能以及原目标对象指定方法。当然这都是自己定义的,想怎么写就怎么写。我们在进行创建代理对象时Proxy.newProxyInstance(target.getClass().getClassLoader() , target.getClass().getInterfaces(), handler); newProxyInstance会调用handler.invoke() 。具体怎么实现调用的你得去看java底层源码。
2、public class MyProxyFactory{ //为指定target生成动态代理对象 ?
因为我们在创建代理对象时,需要调用原目标对象指定方法,所以必须得有目标对象。否则怎么知道该代理类是哪个类的代理类,newProxyInstance(target.getClass().getClassLoader() , target.getClass().getInterfaces(), handler); 这个方法明确说明了必须有加载目标类的类加载器以及该目标类的所有实现接口。
3、应该是用匿名内部类来实现方便些。这个不知道 |