概述
最近在测试项目代码中遇到同一个类由不同的classloader加载后出现的问题:
- 类A中有一个字段a,它的类型为X
- 类B中有一个字段b,它的类型也为X
- 类A由classLoaderA所加载,类B由classLoaderB所加载
- 执行赋值语句A.a = B.b,由于这两个类型均为X,可以执行,但是有一个要求,这个要求就是在A中所装载类X的装载器必须和在B中装载类X的装载器相同,否则赋值语句失败
为什么会产生上面的输出,我们可以来看一个以下的代码
首先是一个简单的类调用:
类Foo3
1 public class Foo3 implements IFoo{ 2 public void hello() throws Exception{ 3
最后
以上就是自信牛排为你收集整理的同一个java类由不同的classloader加载问题的全部内容,希望文章能够帮你解决同一个java类由不同的classloader加载问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复