关于动态代理的类加载器的问题

关于动态代理的类加载器的问题

https://img1.sycdn.imooc.com//climg/6381778108c2e77116001197.jpg

动态代理的类加载器一般情况下用的不都是被代理类的类加载器吗?这里为什么使用的是客户类NullRobot的类加载器呢?非常困惑为什么可以这样写呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2022-11-26 11:54:47

同学你好,因为代理类不会生成.class文件,所以类加载器无法加载到,那么就必须借用其他类的类加载器,对其进行加载才可以

祝学习愉快~

  • 提问者 蒋昌魁 #1

    这里的类加载器没有类型限制吗?是用其他任何的类加载器都可以替代代理类的类加载器吗?

    2022-11-26 12:51:51
  • 好帮手慕小脸 回复 提问者 蒋昌魁 #2

    同学你好,是有类型限制的。要求代理类的类加载类型与被代理类的类加载器类型一致,所以我们在编码的时候会直接使用被代理类的类加载器,而不是随意借用其他类的类加载器。
    祝学习愉快~

    2022-11-26 14:08:38
  • 提问者 蒋昌魁 回复 好帮手慕小脸 #3

    那这个地方的类加载器似乎很随意呀,被代理类实现了robot接口,但是这里使用的类加载器所属的类NullRobot并没有实现robot接口,而仅仅是一个没有任何关联的普通类。唯一感觉有特殊的地方是,启动方法是在NullRobot类中运行的,动态代理是在该启动方法中创建的

    2022-11-26 16:11:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师