通过学习静态代理,知道如果接口增加了方法,那么委托类和代理类都必须实现,同时在代理类中还要对新增方法做处理,比如日志记录等,很繁琐。而JDK的动态代理就应运而生了,代理类不需要程序员手动预先写好,而是有Proxy类来帮你生成(运行期生成)。先直接看例子。
运行结果 sing准备执行......
下面来看看Proxy.newInstance方法
看了上面的源码,得知重点转移到getProxyClass0(loader, interfaces); 这个方法里面了,进去看了 下,源码挺多的,重要的是后面那部分。
再继续跟踪ProxyGenerator.generateProxyClass( proxyName, interfaces);
现在来看看Proxy给我们生成的代理类是怎样的。
|