为了账号安全,请及时绑定邮箱和手机立即绑定

jdk代理

Car car = new Car();
        CarTimeProxy ctp = new CarTimeProxy(car);
        CarLogProxy clp = new CarLogProxy(ctp);
         InvocationHandler h2= new TimeHandler(clp);
        Class<?> c = car.getClass();
        /*
         * loader:类加载器; interfaces:实现接口; h:InvocationHandler
         */
        Movable m = (Movable) Proxy.newProxyInstance(c.getClassLoader(),
                c.getInterfaces(), h2);
        m.Move();


为什么这样子做的话只能输出日志线程,而输出不了时间线程?

正在回答

2 回答

代理的代理,就是将用时间增强过的代理再用日志增强,这样就可以同时输出时间和日志,应该对car的时间增强代理类增强日志功能。看不懂你的ctp和clp的意义何在,你可能将动态代理和静态代理混淆了,你这里的代理处理器还是对时间的增强,并没有对日志增强的代理处理器。(动态代理是依据代理处理器来动态创建代理的。)

0 回复 有任何疑惑可以回复我~
#1

moummm 提问者

非常感谢!
2017-07-22 回复 有任何疑惑可以回复我~

CarTimeProxy  和 Car  类的代码贴出来看看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信