【问题标题】:what does static { // some code } mean? [duplicate]static { // some code } 是什么意思? [复制]
【发布时间】:2013-01-02 13:47:27
【问题描述】:

可能重复:
Static Initialization Blocks

以下在java中是什么意思?

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

【问题讨论】:

  • 问题是问这个问题的人不知道这个东西叫做“静态初始化块”
  • 是的,直到现在我才听说过。

标签: java


【解决方案1】:

这意味着static initialization block 将在类加载时执行。

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-02-27
    • 2016-05-12
    • 2019-11-23
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    相关资源
    最近更新 更多