开发者社区> 问答> 正文

Java如何使用Proxy和InvocationHandler创建动态代理?

Java如何使用Proxy和InvocationHandler创建动态代理?

展开
收起
小天使爱美 2020-04-12 19:54:32 1090 0
1 条回答
写回答
取消 提交回答
  • "Proxy 提供了用于创建动态代理类和代理对象的静态方法,它也是所有动态代理类的父类。如果在程序中为一个或多个接口动态地生成实现类,就可以使用Proxy来创建动态代理类;如果需要为一个或多个接口动态地创建实例,也可以使用Proxy来创建动态代理实例。Proxy提供了如下两个方法来创建动态代理类和动态代理实例。 static Class getProxyClass(ClassLoader loader,Class ...interfaces):创建一个动态代理类所对应的Class对象,该代理类将实现interfaces所指定的多个接口。第一个ClassLoader参数指定生成动态代理类的类加载器。 static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h):直接创建一个动态代理对象,该代理对象的实现类实现了interfaces 指定的系列接口,执行代理对象的每个方法时都会被替换执行InvocationHandler对象的invoke方法。 实际上,即使采用第一个方法获取了一个动态代理类之后,当程序需要通过该代理类来创建对象时一样需要传入一个 InvocationHandler 对象。也就是说,系统生成的每个代理对象都有一个与之关联的InvocationHandler对象。"

    2020-04-12 19:56:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载