1.Handler:java.lang.reflect.InvocationHandler的子类
包含一个需要代理的实例作为成员变量:
包含方法:public Object invoke(Object proxy, Method method, Object[] args) 调用:method.invoke((Object)this.代理实例,参数args);
2.需要代理的类:一般的类/接口
3.产生代理类实例:Proxy.newProxyInstance(ClassLoader实例,new Class[]{需代理类.class },Handler实例);
* 问题1: 什么样的方法会被调用Handler的invoke方法?
代理类实例调用方法时,会经过handler。
* 问题2:由代理产生的实例怎样实现由参数的构造?
代理类实例是通过实际的类实例产生的。实际的类实例可以由参数构造
包含一个需要代理的实例作为成员变量:
包含方法:public Object invoke(Object proxy, Method method, Object[] args) 调用:method.invoke((Object)this.代理实例,参数args);
2.需要代理的类:一般的类/接口
3.产生代理类实例:Proxy.newProxyInstance(ClassLoader实例,new Class[]{需代理类.class },Handler实例);
* 问题1: 什么样的方法会被调用Handler的invoke方法?
代理类实例调用方法时,会经过handler。
* 问题2:由代理产生的实例怎样实现由参数的构造?
代理类实例是通过实际的类实例产生的。实际的类实例可以由参数构造