【发布时间】:2019-02-05 13:20:14
【问题描述】:
我想在调用静态块之前“执行” main() 方法。根据 Java 规则,静态块将在类加载时执行,然后调用 main() 方法。有什么办法可以先“执行”主方法,再静态块?
public class StaticDemo {
static {
System.out.println("in static block");
}
public static void main(String args[]){
System.out.println("in main method");
}
}
输出将是....
in static block
in main method
从静态块调用 main 方法只会生成预期的输出。但它首先执行静态块,然后调用 main 方法。
import com.sun.javaws.Main;
public class StaticDemo {
static {
main(null);
System.out.println("in static block");
}
public static void main(String args[]){
System.out.println("in main method");
}
}
输出将是...
in main method
in static block
in main method
我的预期输出是....
in main method
in static block
【问题讨论】:
-
“根据Java规则静态块将在类加载时执行,然后调用main()方法”你很好地总结了情况。答案是不。如果您不喜欢这种行为,请不要使用静态初始化程序块。
-
你已经在这里回答了你自己的问题:根据 Java 规则,静态块将在类加载时执行,然后调用 main() 方法
标签: java static-block