类中的孤括号



我在网上找不到任何关于这个的东西,因为我不知道要搜索什么,但是Java没有将这段代码标记为有错误:

public class Test {
    // ...
    {
        int test;
    }
    // ...
}

这在Java中有什么用吗?如果是这样,怎么办?

称为实例初始值设定项(JLS 第 8.6 节)

创建对象时,实例初始值设定项在超级构造函数之后运行,但在定义它们的类的调用构造函数之前运行。请参阅 JLS 12.5 创建新类实例。具体而言,实例初始值设定项在对象创建过程的步骤 4 中进行评估。关键点是,无论使用什么构造函数来实例化对象,实例初始化器总是被调用。

还有一些静态初始值设定项类似,但标有 static 关键字。

public class Test {
    static {
       // Do something interesting on class load.
    }
}

根据我的经验,静态 intiailzer 更常见,因为您可以在加载类时使用它们来设置复杂的类状态(如链接 JNI 库)。

相关内容

  • 没有找到相关文章

最新更新