再次调用静态初始化程序

Kal*_*ser 5 java static static-initializer

一旦加载了类,有没有办法再次调用静态初始值设定项?

public class Foo {

    static {
        System.out.println("bar");
    }

}
Run Code Online (Sandbox Code Playgroud)

编辑:

我需要调用静态初始化程序,因为我没有编写原始类,我需要调用的逻辑是在静态初始化程序中实现的.

Dan*_*ker 10

将初始化代码放在一个单独的公共静态方法中,这样你可以从静态初始化器和其他地方调用它吗?


McD*_*ell 5

逻辑运行不止一次的一种情况是,如果类被不同的ClassLoader加载多次.请注意,在这种情况下,它们本质上是不同的类.

但一般来说,这些都是一次性交易.如果您希望能够多次调用逻辑,请按照其他人的建议进行操作,并将其置于静态方法中.