java - 如何在java中的main方法之后执行静态块?
问题描述
我想在调用静态块之前“执行” 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
解决方案
有什么方法可以先“执行”主方法,然后是静态 blk
不,没有。不是那个静态块。
假设您想在main
方法完成后执行一些代码,您可以:
- 将代码放入您在方法末尾调用的
main
方法中, - 将代码放入主线程的未捕获异常处理程序中,并故意在 中抛出异常
main()
,或 - 将代码放入关闭挂钩。
您还可以将代码放入不同类的静态块中,并动态加载/初始化它,或以各种方式触发它。但是调用方法更简单。
推荐阅读
- java - 在 Android 的 Arraylist 中从 Firebase 检索数据
- indexing - RavenDB - 何时使用 AbstractIndexCreationTask 索引、排序和存储方法?
- css - Bootstrap 4 创建非模态对话框
- html - 奇怪的交互 ng-hide 和 data-charts angular js
- mysql - 使用 Doctrine ind Akeneo 查询产品
- php - 带有 PWA 的 Laravel 5.2
- nginx - Nginx“在正文之前添加”/“在正文之后添加”,但仅限于内容类型
- scripting - Telegram Bot 代码将私人组的成员列入白名单
- python - 如何在对另一列进行排序时对一列进行分组?
- oracle - Oracle 侦听器名称而不检查 windows 的 listener.ora 文件