JAVA动态代理

来源:互联网 发布:剑三丐帮成男捏脸数据 编辑:程序博客网 时间:2024/06/08 05:48

利用代理可以在运行时创建一个实现了一组给定接口的新类。

 

使用代理需要提供一个调用处理器(Invocation handler),调用处理器是实现了InvocationHandler接口的类对象,在这个接口中只有一个方法:

Object invoke(Object proxy,Method method, Object[] args)

无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数。

 

要想创建一个代理对象,需要使用Proxy类的newProxyInstance方法,这个方法有三个参数:

  •  一个类加载器(classloader)
  •  一个Class对象数组,每个元素都是需要实现的接口
  •  一个调用处理器

 

例:

接口:


实际实现接口的类:


调用处理器类:


测试类(生成代理类):


运行结果:


参考:

《JAVA核心技术卷Ⅰ:基础知识》

http://langyu.iteye.com/blog/410071


0 0