Class.forName有2个重载的方法:
Java代码
public static Class<?> forName(String name, boolean initialize,
ClassLoader loader)
throws ClassNotFoundException
public static Class<?> forName(String className)
throws ClassNotFoundException
第一个方法:
name:类的全限定名,如:com.aaa.bbb.ccc
initialize:如果为true,则会在返回Class对象之前,对该类型做连接,校验,初始化操作。(如:执行static块中的代码)
loader:用自定义的类加载器来请求这个类型;当然,你也可以传入null,用bootstrap加载器。
第二个方法:
name和上面相同。默认initialize为true,
而loader是这么获取的
Java代码 收藏代码
ClassLoader.getCallerClassLoader()
其实就是获取当前类的classLoader,也就是装载执行forName操作的类的classLoader
转载于:https://my.oschina.net/u/3311443/blog/848804