【问题标题】:How to control the loading of static methods of a class如何控制类的静态方法的加载
【发布时间】:2017-01-10 17:54:02
【问题描述】:

如何控制一个类的静态方法的加载,比如我有几个独立的类(A、B、C、D、E..),如果每个类都有静态块,如何控制在 C 左右加载 Class A 的静态块

【问题讨论】:

  • 第一次使用类时调用静态块。按照您需要调用块的顺序使用它们。
  • 您使用“加载”一词毫无意义。在 Java 中,只加载,不加载方法,不加载“静态块”。类由 JVM 自行决定加载,它们在首次使用时被初始化,其中包括静态初始化程序的执行。如果这些类,如您所说,独立,则没有理由尝试进一步控制它们的初始化。

标签: static jvm initialization classloader


【解决方案1】:

Hacky 解决方案,但有效!

在您的 A、B、C 类中...添加此字段

static boolean loadMe;

然后在首先加载的类中添加以下代码。首先加载的类可能是具有 main() 方法的类,也可能是作为应用程序起点的类。

static {
    boolead loaded = A.loadMe;
    loaded = B.loadMe;
    ...//In the order that you require
}

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 2011-01-17
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多