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

时间:2014-03-15 19:18:33

标签: 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 (final URL url : urLs) {
            System.out.println(url);
            System.out.println(Files.probeContentType(Paths.get(url.toURI())));
        }
    }
}

我必须将ClassLoader转换为URLClassLoader以获得.getURLs()方法。

这不是我第一次这样做,这次演员对我来说从未失败过。

查看类型层次结构,我看到:

URLClassLoader -> SecureClassLoader -> ClassLoader

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

1 个答案:

答案 0 :(得分:0)

只需搜索grepcode。例如JBoss' ModuleClassLoader不会扩展URLClassLoader