java - Java 中的包初始化

标签 java initialization

我正在构建一个 Java 包,我需要调用一些初始化代码才能使包正常工作。该包被包装为 .jar,并且我无法控制用户将我的包导入到他们的应用程序中时将调用的内容。有没有办法在幕后调用此方法,而不是让他们在开始使用我的包之前需要调用初始化方法?

我还想提一下,static { } 方法不起作用,因为无论使用包中的哪些对象,我都需要调用此代码一次。

最佳答案

不,在包级别上没有这样的方法。

要实现这一点,您可以添加

static {
   ....
}

阻止每个类并让该静态 block 调用公共(public)初始值设定项。

例如:

package a.b;
class X {
  static {
     a.b.Static.init();
  }
}

class Y {
  static {
     a.b.Static.init();
  }
}

class Static {
  static void init() {
    ... my init code goes here ...
  }
}

关于java - Java 中的包初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29324655/

相关文章:

java - Java/Groovy 中是否有可用的临时报告生成器库?根据选择的维度/度量生成 SQL 查询

java - Netty 有哪些 Servlet 容器

c++ - 部分初始化其他模块中定义的变量

Python OOP 初始化参数错误

java - 将结果从 HQL 转换为对象

java - Spring 网络流量 : Move through view states

java - 从没有客户端的输入流读取数据 "flush()"

swift - 绕过自动初始化器继承规则 Swift

c++ - Visual Studio const_iterator 分配错误

c# - 在c#中的任意起始索引上初始化数组