一、知识点:
Class.forName方法可以指定3个参数,第一个为类名,第二个为boolean类型的参数,表示是否对加载的类进行初始化,第三个为类加载器
二、例子:
1.定义一个类,在其中使用静态代码块
package com.example;
public class Hi {
static {
System.out.println("static block in hi......");
}
}
2.使用Class.forName方法:
package react;
public class Test {
public static void main(String[] args) throws Exception{
Test t=new Test();
Class.forName("com.example.Hi",true,t.getClass().getClassLoader());
System.out.println("in main......");
}
}
运行程序会输出:
如果将代码改为:
package react;
public class Test {
public static void main(String[] args) throws Exception{
Test t=new Test();
Class.forName("com.example.Hi",false,t.getClass().getClassLoader());
System.out.println("in main......");
}
}
运行程序会输出:
也就是Class.forName的第二个参数决定所加载的类是否会被初始化