java - 在没有构造函数的情况下运行一段代码
问题描述
我是java新手,我正在编写一个GUI程序。我有一个独立于 GUI 的类,我想在 GUI 类中使用它的方法。这些方法是静态的,我宁愿没有对象,因为它们没有任何作用。但是,要使代码实现其目的,需要首先运行一段代码,如果没有构造函数,这似乎是不可能的。那么是否可以在不创建所述类的实例的情况下运行所述代码?
解决方案
您可以制作静态初始化程序,它们在 JVM 的生命周期内最多运行一次,并且“根据需要”运行(不是在您的软件启动时,而是在您的代码尝试接触类的那一刻,如果它没有) t 尚未初始化,它将在那个时间点初始化):
public final class WidgetOperations {
private WidgetOperations() { /* prevent construction */ }
static {
System.out.println("Hello! I am initializing!");
}
public static void foo() {
System.out.println("FOO");
}
}
如果你有这个代码:
void example () {
WidgetOperations.foo();
WidgetOperations.foo();
}
你会看到:
Hello! I am initializing!
FOO
FOO
推荐阅读
- c# - 删除群组频道时未发送 PubNub 消息
- jquery - 从 jquery 调用 asp.net webmethod
- google-kubernetes-engine - 如何将挂载单个文件作为卷传递给 KubernetesPodOperator?
- python-3.x - 通过单击小部件更改小部件焦点
- amazon-s3 - S3.getObject() 在本地工作,但不适用于 Lambda
- javascript - 具有最大高度溢出的 CSS 过渡隐藏“模拟”过渡
- sql - 连接存储在同一列中的多行整数?
- spring-boot - 连接超时:在 docker 容器中使用 SSL 调试 RestTemplate API GET 请求
- symfony - Doctrine QueryBuilder 计数和选民
- reactjs - 如何使用样式化组件来定位 Material UI Dialog 的背景颜色属性?