在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
实例。