如何使.getClassLoader()返回自定义ClassLoader?

时间:2017-06-22 13:23:26

标签: class classloader

需要你的帮助。我创建了2个自定义ClassLoaders来加载类文件。但是当我尝试在我加载的类上使用。getClassLoader()时,我每次都看到ApplicationClassloader

2 个答案:

答案 0 :(得分:0)

Java中的ClassLoader基于三个原则:

  1. 代表团,
  2. 知名度
  3. 唯一

    如果父级无法查找或加载类,则委托原则将类加载的请求转发到父类加载器并仅加载该类。可见性原则允许子类加载器查看父类ClassLoader加载的所有类,但父类加载器无法查看子加载的类。唯一性原则允许只加载一次类,这基本上是通过委托实现的,并确保子类ClassLoader不会重新加载已由父级加载的类。

  4. 您正在尝试加载的课程应该在您的课程路径中。请检查您的应用程序类路径

    了解详情:here

答案 1 :(得分:0)

这意味着您的类确实由应用程序类加载器定义,而不是您自定义的类。您的自定义类加载器只是启动类加载器,它委托给它的父(应用程序类加载器)。确保自定义类加载器定义类本身。