`
echohfut
  • 浏览: 225095 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java中的动态代理

    博客分类:
  • JDK
阅读更多

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);



 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics