1.前提准备
一个接口,一个目标类,一个测试类
- 1.Person接口中包含run跑方法,和jump跳方法
- 2.Mybody我的身体,去实现了会跑和跳的方法
- 3.Test类中进行创建代理类,在代理类中进行增强run和jump方法
2.Test类中动态代理写法
- 明确需要增强的类,代码中我是对我的身体增强,所以Mybody称为目标类
- 想通过动态代理的方式进行增强,需要一个代理类对目标类(指实现了接口的目标)进行增强,此处mynewbody为代理类对象,
- 而代理类对目标类进行相应增强,则需要一个工具类Proxy.newProxyInstance(三个参数)。
- 三个参数分别代表的是(第一个与第二个参数固定写法):
- 第三个参数,需要一个处理接口来处理我们需要增强的类,接口使用匿名内部类方式进行实现
- 当调用代理类对象的run方法或jump方法时,我们的得到了增强
注意:每一次调用run方法,都会进入处理接口方法中进行处理
7.如果想输出没有被增强的方法时,将处理接口方法中的return null,修改使用method对象调用实现方法