forName()方法会进行类加载,将MyClass装在到JVM上。
静态代码块:在类加载时执行,且只执行一次。
如果你只想执行一个类的静态代码块,其它代码不执行,可以使用forName()方法
package leetcode0606.reflect;
public class ReflectTest04 {
public static void main(String[] args) {
try {
Class.forName("leetcode0606.reflect.MyClass");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class MyClass{
static{
System.out.println("MyClass的静态代码块执行了!!!");
}
}
本文介绍如何利用Java反射中的forName()方法仅执行指定类的静态代码块,而不执行类中的其他代码。这种方法适用于只需初始化某些静态资源但不需要实例化类的情况。
1万+

被折叠的 条评论
为什么被折叠?



