在另一个答案中,我编写了以下代码(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的具体示例?

最佳答案

只需搜索grepcode。例如,JBoss的ModuleClassLoader不扩展URLClassLoader

关于java - 为什么在ClassLoader中没有.getURLs()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22428533/

10-10 03:14