1. 首页
  2. 编程语言
  3. Java
  4. 手动模拟JDK动态代理的方法

手动模拟JDK动态代理的方法

上传者: 2022-04-25 00:31:30上传 PDF文件 100.92 KB 热度 18次

实现自己动态代理,首先需要关注的点就是,代理对象需要为哪些方法代理?原生JDK的动态代理的实现是往上抽象出一层接口,让目标对象和代理对象都实现这个接口,怎么把接口的信息告诉jdk原生的动态代理呢?通过newInstance()用户获取到的代理对象就像上面的代理一样,这个过程是在java代码运行时生成的,但是直接看他的结果和静态代理差不错,这时用户再去调用代理对象的say(), 实际上就是在执行用户传递进去的InvocationHandeler里面的invoke方法, 但是亮点是我们把目标方法的描述对象Method同时给他传递进去了,让用户可以执行目标方法+增强的逻辑当通过反射区执行Method对象的invoke()方法时,指定的哪个对象的当前方法呢?这个参数其实是我们手动传递进去的代理对象代码如下

用户评论