classLoader获取的几种方式

来源:互联网 发布:人工智能三大定律 编辑:程序博客网 时间:2024/06/06 09:25
    public static Class loadClass(String className, Class callingClass) throws ClassNotFoundException {
        try {
            return Thread.currentThread().getContextClassLoader().loadClass(className);
        } catch (ClassNotFoundException e) {
            try {
                return Class.forName(className);
            } catch (ClassNotFoundException ex) {
                try {
                    return ClassLoaderUtil.class.getClassLoader().loadClass(className);
                } catch (ClassNotFoundException exc) {
                    return callingClass.getClassLoader().loadClass(className);
                }
            }
        }

    }


上面这段代码是struts中的过滤器加载指定类的工具类中的一个方法,从这个方法中可以看到获取类加载器的几种方式。

1. 通过当前线程获取

2. java自身的class

3. 已知执行类的类加载器

4. 工具类的类加载器。

总结起来是三种: 线程、Class、已知类加载器

0 0