首页 电脑 电脑学堂 查看内容

深入理解java中的动态代理

2016-10-14 12:41 699 0

摘要: java中的动态代理要实现一个InvocationHandler接口并实现其中的invoke方法代码如下:2. 在写一个main方法看如何调用:3. 现在我们来看为什么personProx.getClass().getName()得到的名字会是$Proxy04. 通过反编译工具 ...

  1. java中的动态代理要实现一个InvocationHandler接口并实现其中的invoke方法代码如下:

2. 在写一个main方法看如何调用:

3. 现在我们来看为什么personProx.getClass().getName()得到的名字会是$Proxy0

4. 通过反编译工具打开$Proxy0.class文件(为了简介我把其中一些代码删掉了)

通过这样分析我们就明白了原来是jdk动态为我们生成了一个$Proxy0类,并在该类中通过反射得到了Person接口中的方法,然后把我们实现了InvocationHandler接口的类赋值给了Proxy类中的h,因此当调用personProx.say()的时候就调到自己写的DynamicProx类中了

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部