Java 为什么ClassLoader中没有.getURLs()?

Java 为什么ClassLoader中没有.getURLs()?,java,classloader,Java,Classloader,在另一个回答中,我编写了以下代码Java 7: public final class Foo { public static void main(final String... args) { final ClassLoader loader = Foo.class.getClassLoader(); final URL[] urLs = ((URLClassLoader) loader).getURLs(); for (fin

在另一个回答中,我编写了以下代码Java 7:

public final class Foo
{
    public static void main(final String... args)
    {
        final ClassLoader loader = Foo.class.getClassLoader();

        final URL[] urLs = ((URLClassLoader) loader).getURLs();

        for (final URL url : urLs) {
            System.out.println(url);
            System.out.println(Files.probeContentType(Paths.get(url.toURI())));
        }
    }
}
我必须将类加载器转换为URLClassLoader,才能使用.getURLs方法

这不是我第一次这么做了,这个演员阵容对我来说从未失败过

查看类型层次结构,我发现:

URLClassLoader -> SecureClassLoader -> ClassLoader

我的问题是为什么ClassLoader不定义.getURL?是否有类加载器无法返回URL的具体示例?

只需通过grepcode搜索即可。例如JBoss“不扩展URLClassLoader”

我认为有些类加载器类从无法通过URL访问的资源中加载它们的类。。。。JVM以依赖于平台的方式从本地文件系统加载类。但是URLClassLoader-用于从URL的搜索路径加载类和资源。@Arjit您可以将本地文件系统资源包装为URL文件:。。。