getClassloader失败的原因?

时间:2017-01-16 04:07:59

标签: java classloader

只是好奇,以下行何时会失败?

  

this.getClass()getClassLoader();

总是能找到ClassLoader吗?是否有任何无法找到ClassLoader的情况?

1 个答案:

答案 0 :(得分:1)

看看源代码。当存在SecurityManager并且不允许您访问它时,此方法仅抛出SecurityException。

public ClassLoader getClassLoader() {
        ClassLoader cl = getClassLoader0();
        if (cl == null)
            return null;
        SecurityManager sm = System.getSecurityManager();
        if (sm != null) {
            ClassLoader.checkClassLoaderPermission(cl, Reflection.getCallerClass());
        }
        return cl;
    }

如果您想知道cl可能是null。这是一个answer