好像invoke方法本身的第一个参数 object没有用到,老师都是用一个私有变量来传递实际需要的object,虽然完美代替,没有解释。
2017-12-25
把 filename 写成 当前包下的 $Proxy0.java ,然后把 长字符串中的包名 package 当前包名,load的时候就写成 当前包名.$Proxy0 , 还有记得构造方法的函数名也是 $Proxy0
2017-12-25
答案是
Car car = new Car(); // 被代理的 类
CarLogProxy log = new CarLogProxy(car); // 汽车 日志代理
TimeHandler th = new TimeHandler(log); // 时间 ●动态代理~
Class<?> cls = car.getClass();
Moveable m = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), th);
m.move();
Car car = new Car(); // 被代理的 类
CarLogProxy log = new CarLogProxy(car); // 汽车 日志代理
TimeHandler th = new TimeHandler(log); // 时间 ●动态代理~
Class<?> cls = car.getClass();
Moveable m = (Moveable) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), th);
m.move();
2017-11-27