Class.forName默认使用什么ClassLoader?

Ade*_*ros 1 java classloader

我的印象是Class.forName(String className)使用了Thread.currentThread().getContextClassLoader()加载类,但显然情况并非如此.

因此我的问题是,ClassLoader Class.forName默认使用什么?是ClassLoader.getSystemClassLoader()吗?

这有什么之间的区别Thread.currentThread().getContextClassLoader()ClassLoader.getSystemClassLoader()

Jon*_*eet 7

它使用调用者的类加载器.从文档:

返回与具有给定字符串名称的类或接口关联的Class对象.调用此方法相当于:

Class.forName(className, true, currentLoader)
Run Code Online (Sandbox Code Playgroud)

其中currentLoader表示当前类的定义类加载器.

  • @AdelBoutros:没错.这是加载调用类的任何东西. (3认同)