问答详情
源自:2-3 了解 JDK 动态代理

动态代理作业

谁把作业做出来??我不会做啊,先实现日志再实现时间

提问者:小政政 2015-08-27 12:32

个回答

  • qq_微微笑_4
    2016-01-26 13:58:42

    interface Moveable
    calss Car implements Moveable;
    
    TimeHandler implements InvocationHandler;
    LogHandler implements InvocationHandler;
    
    public class Main{
        public static void main(String[] args){
            Car car = new Car();
            //初始化时间控制器
            InvocationHandler timeHandler = new TimeHandler(car);
            //获取时间代理对象
            Moveable mv = (Moveable)Proxy.newProxyInstance(car.getClass().getClassLoader(), car.getClass().getInterfaces(),timeHandler);
            //将时间代理对象再次代理
            InvocationHandler logHandler = new LogHandler(mv);
            mv = (Moveable)Proxy.newProxyInstance(car.getClass().getClassLoader(), car.getClass().getInterfaces(), logHandler);
            
            //代理对象调用方法
            
            mv.run();
        }
    }

    这里主要帮你写了测试类,其他都是伪代码,自己应该会做。有什么问题可以一起交流,我也是网上浏览别人实现的。 共勉!