只是好奇,以下行何时会失败?
总是能找到ClassLoader吗?是否有任何无法找到ClassLoader的情况?this.getClass()getClassLoader();
答案 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。