首页 > 解决方案 > 在没有构造函数的情况下运行一段代码

问题描述

我是java新手,我正在编写一个GUI程序。我有一个独立于 GUI 的类,我想在 GUI 类中使用它的方法。这些方法是静态的,我宁愿没有对象,因为它们没有任何作用。但是,要使代码实现其目的,需要首先运行一段代码,如果没有构造函数,这似乎是不可能的。那么是否可以在不创建所述类的实例的情况下运行所述代码?

标签: javaclass

解决方案


您可以制作静态初始化程序,它们在 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

推荐阅读