jdk中动态代理只支持接口的方式
实现方式是:
1. 调用 java.lang.reflect.Proxy中的静态方法
newProxyInstance(ClassLoader loader,
Class[] interfaces,
InvocationHandler h)
loader和interfaces是被代理类的
针对返回的对象转型为被代理类的接口
2. 实现一个java.lang.reflect.InvocationHandler 接口,实现其中的方法
public Object invoke(Object proxy,
Method method,
Object[] args)
此处关键是需要传入具体类作为此实现类的实例变量,
并保证以以下方式调用,并在该方法调用前后加入需要代理的逻辑
method.invoke(被代理类实例,args);