ContextClassLoader介绍

介绍了Thread.currentThread().getContextClassLoader()的意义,指出父Classloader可使用当前线程指定classloader中加载的类,颠覆了常规情况。还通过ClassLoader A和B举例,说明设置上下文类加载器后,A加载的类可访问B中加载的类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thread.currentThread().getContextClassLoader()的意义:

1,父Classloader可以使用当前线程Thread.currentthread().getContextLoader()中指定的classloader中加载的类。颠覆了父ClassLoader不能使用子Classloader或者是其它没有直接父子关系的Classloader中加载的类这种情况。

有两个ClassLoader,A和B,A为当前线程的ClassLoader,这个时候Thread.currentthread().getContextLoader()并不是指的A这个ClassLoader,而是指通过setContextLoader(ClassLoader cl)中设置进去的那一个ClassLoader,假定为B,本来A与B是两个独立的ClassLoader,甚至于B的父ClassLoader就是A,按照普通ClassLoader的类加载规则,A中是不可以使用B中的类的,但是以setContextLoader()方式设置A的上下文类加载器为B的时候,A加载的类就可以访问B中加载的类了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值