在Java中,newInstance()
方法是Object
类的一个静态方法,用于创建并返回该类的一个新实例。当你使用Class.newInstance()
方法时,它会调用类的静态块(如果存在)并返回一个新的实例。
静态块在类加载时执行,且只执行一次。它通常用于初始化静态变量和执行仅需要执行一次的操作。静态块按照在代码中出现的顺序执行。
下面是一个简单的例子,展示了如何使用newInstance()
方法和静态块:
public class MyClass {
private static int staticVar;
static {
System.out.println("Executing static block");
staticVar = 42;
}
public static void main(String[] args) throws Exception {
MyClass obj = (MyClass) Class.forName("MyClass").newInstance();
System.out.println("Static variable value: " + obj.staticVar);
}
}
输出:
Executing static block
Static variable value: 42
在这个例子中,当我们调用Class.forName("MyClass").newInstance()
时,首先会加载MyClass
类,然后执行静态块,最后创建一个新的MyClass
实例。