2

可能重复:
静态初始化块

以下在java中是什么意思?

static {                                        
  WritableComparator.define(IntPair.class, new Comparator());
}
4

2 回答 2

9

这意味着将在类加载时执行的静态初始化块。

如果初始化需要一些逻辑(例如,错误处理或填充复杂数组的 for 循环),简单的赋值是不够的。实例变量可以在构造函数中初始化,其中可以使用错误处理或其他逻辑。为了为类变量提供相同的功能,Java 编程语言包括静态初始化块。

于 2013-01-18T19:09:19.920 回答
1

这意味着该块中的代码将在加载类型时运行一次,在调用任何构造函数之前,但在运行任何字段初始化程序之后。

请注意,您不能在静态块中设置任何实例字段。this就像在任何其他静态方法中一样,那里没有概念。

于 2013-01-18T19:11:27.750 回答