java 动态代理 demo 实现原理 参数理解(三)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 动态代理 demo 实现原理 参数理解(三),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1130字,纯文字阅读大概需要2分钟。
内容图文
?
动态代理两个重要的组成: Proxy 与 InvocationHandler
Hello1 hello = (Hello1) Proxy.newProxyInstance(Hello.class.getClassLoader(),new Class[]{Hello1.class},new HelloProxy<HelloWorld>(new HelloWorld()));
public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces, InvocationHandler h)
第一个类加载器, 目前觉得这个理解的不到位,因为要生成一个在内存中的代理对象,需要一个类加载器器,平常
第二个参数,被代理对象的所有接口,假如 hello 实现了 Hello 、 Hello1 这两个接口,这个参数 就变数,两个接口组成的 class数组, 参数的目的是: 本质上其实是多态, 这样
Proxy.newProxyInstance(hello.getClass().getClassLoader(), hello.getClass().getInterfaces(), this); 这个方法可以 强制转换成Hello 也可以是 Hello1
第三个参数 这个参数 要实现 InvocationHandler 接口
InvocationHandler 要实现的方法如下:
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
三个参数: proxy 这个感觉没有用上
这样的是第二个参数: method 这个是被代理类的接口层的实现方法的Class 对象,比如有个方法 sayHello 这个就是sayHello 的class 对象,然后通过反射机制 去调用这个方法
第三个参数 就是方法使用到的参数
内容总结
以上是互联网集市为您收集整理的java 动态代理 demo 实现原理 参数理解(三)全部内容,希望文章能够帮你解决java 动态代理 demo 实现原理 参数理解(三)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。