代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。今天华清Java学院小编就和大家一起来深入理解Java中的动态代理。
1、java中的动态代理要实现一个InvocationHandler接口并实现其中的invoke方法代码如下:
2. 在写一个main方法看如何调用:
3. 现在我们来看为什么personProx.getClass().getName()得到的名字会是$Proxy0
4. 通过反编译工具打开$Proxy0.class文件(为了简介我把其中一些代码删掉了)
通过这样分析我们就明白了原来是jdk动态为我们生成了一个$Proxy0类,并在该类中通过反射得到了Person接口中的方法,然后把我们实现了InvocationHandler接口的类赋值给了Proxy类中的h,因此当调用personProx.say()的时候就调到自己写的DynamicProx类中了
热点新闻