class A{
static Map cacheMap;
public static void doSmthing(){
Cache cache = new Cache();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
//为何要set一下classloader?
Thread.currentThread().setContextClassLoader(A.class.getClassLoader());
Integer cacheId = RandomUtils.nextInt();
cacheMap.put(cacheId,cache);
} finally{
Thread.currentThread().setContextClassLoader(cl);
}
}
}
//这样做的目的是什么?是不是和线程有关?
------解决思路----------------------
单纯看这些代码,不太有必要的样子
毕竟设完之后就执行了两句就又设回去了
如果不设classloader,看看执行效果上会有什么区别吗?