JAVA里的动态代理是这样的,上善若水 同学的问题是要这么解决的。在HalCtrlProxyHandler中的invoke方法里添加日志即可。这是Java在native层支持的动态代理。
//创建一个与代理对象相关联的InvocationHandler
InvocationHandler stuHandler = new HalCtrlProxyHandler<>(ctrl);
//创建一个代理对象stuProxy来代理,代理对象的每个执行方法都会替换执行Invocation中的invoke方法
return (IPrinter) Proxy.newProxyInstance(IPrinter.class.getClassLoader()
, new Class<?>[]{IPrinter.class}, stuHandler);
展开