打字猴:1.700461031e+09
1700461031 public class RealSubject implements Subject{
1700461032
1700461033 //业务操作
1700461034
1700461035 public void doSomething(String str){
1700461036
1700461037 System.out.println(“do something!–->”+str);
1700461038
1700461039 }
1700461040
1700461041 }
1700461042
1700461043 重点是我们的MyInvocationHandler,如代码清单12-27所示。
1700461044
1700461045 代码清单12-27 动态代理的Handler类
1700461046
1700461047 public class MyInvocationHandler implements InvocationHandler{
1700461048
1700461049 //被代理的对象
1700461050
1700461051 private Object target=null;
1700461052
1700461053 //通过构造函数传递一个对象
1700461054
1700461055 public MyInvocationHandler(Object_obj){
1700461056
1700461057 this.target=_obj;
1700461058
1700461059 }
1700461060
1700461061 //代理方法
1700461062
1700461063 public Object invoke(Object proxy,Method method,Object[]args)
1700461064
1700461065 throws Throwable{
1700461066
1700461067 //执行被代理的方法
1700461068
1700461069 return method.invoke(this.target,args);
1700461070
1700461071 }
1700461072
1700461073 }
1700461074
1700461075 非常简单,所有通过动态代理实现的方法全部通过invokve方法调用。DynamicProxy代码如代码清单12-28所示。
1700461076
1700461077 代码清单12-28 动态代理类
1700461078
1700461079 public class DynamicProxy<T>{
1700461080
[ 上一页 ]  [ :1.700461031e+09 ]  [ 下一页 ]