类加载器才能加载类?
答案:是的,必须在静态类加载器上创建新的类加载器才能加载类。
解释:在Java中,类加载器分为三种:引导类加载器、扩展类加载器和应用类加载器。它们之间的关系如下:
当需要加载一个类时,如果该类没有被加载到引导类加载器中,那么将交给扩展类加载器尝试加载;如果扩展类加载器也无法加载该类,那么将交给应用类加载器尝试加载。
如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委托给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中。如果父类加载器无法完成这个加载(因为在其类路径下没有找到所需的类),那么子类加载器才会尝试自己去加载。
因此,如果一个类在运行时只有一个类加载器可以加载这个类,那么就需要在静态类加载器上创建一个新的类加载器来加载这个类。
领取专属 10元无门槛券
手把手带您无忧上云