我不确定自己是如何陷入这种情况的,但不知何故,我从Thread.getContextClassLoader中得到了一个空ClassLoader。阅读了一些资料(文档和谷歌上都没有太多信息),我得出的印象是当前线程有一个空class loader是有效的,并且应该检查getContextClassLoader的调用是否为空引用。
这非常令人惊讶,因为我看到了一些开源项目未经检查地调用getContextClassLoader(这也是我首次检查它的原因)。具体来说,codemodel中的这行代码:JCodeModel.java line 358 (我刚刚验证了log4j也没有检查)
所以,对getContextClassLoader的调用是否应检查空引用,还是我的线程出了问题?
这非常令人惊讶,因为我看到了一些开源项目未经检查地调用getContextClassLoader(这也是我首次检查它的原因)。具体来说,codemodel中的这行代码:JCodeModel.java line 358 (我刚刚验证了log4j也没有检查)
所以,对getContextClassLoader的调用是否应检查空引用,还是我的线程出了问题?
Thread
时,它会继承当前Thread
的线程上下文类加载器。 - Tom Hawtin - tackline