动态代理

本文记录Java学习过程中遇到的动态代理~

动态代理,就是不用手动编写一个代理对象,不需要一一编写与目标对象相同的方法,在运行时的内存中动态生成代理对象,即字节码对象级别的代理对象。

动态代理的API:在JDK的API中有个Proxy类中存在一个生成动态代理的的方法newProxyInstance:

static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)

返回值:Object就是代理对象
参数:

  • loader:代表与目标对象相同的类加载器-------目标对象.getClass().getClassLoader()
  • interfaces:代表与目标对象实现的所有的接口字节码对象数组
  • h:具体的代理的操作,InvocationHandler接口

注意:JDK的Proxy方式实现的动态代理的目标对象必须有接口,没有接口就不能实现JDK版动态代理。

标签: none