答案是
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
如果有类似错误“D:\MyWorkspace\Proxy\bin\com\imooc\proxyImpl\$Proxy.java:2: 错误: 类$Proxy0是公共的, 应在名为 $Proxy0.java 的文件中”
一定是:String filename=System.getProperty("user.dir")+"/bin/com/imooc/proxyImpl/$Proxy0.java";
这行中的$Proxy0.java写成了$Proxy.java没改过来。
一定是:String filename=System.getProperty("user.dir")+"/bin/com/imooc/proxyImpl/$Proxy0.java";
这行中的$Proxy0.java写成了$Proxy.java没改过来。
2017-11-18
已采纳回答 / 窗下有梧桐
InvocationHandler invocationHandler2=new LogHandler(moveable);
Class<?> class2 = moveable.getClass();
Moveable moveable2 =(Moveable)Proxy.newProxyInstance(class2.getClassLoader(), class2.getInterfaces(), invocationHandler2);
moveable2.move();
2017-11-14