Java编码约定 - 这些花括号是什么?

时间:2015-06-23 18:10:30

标签: java coding-style

我是JAVA的新手,我遇到了以下代码片段。

我的问题是关于围绕2个二传手召唤的花括号。

我在编码约定http://www.oracle.com/technetwork/java/codeconventions-150003.pdf中找不到任何解释此代码段的内容。

除了设置调用者的范围(但我无法理解需要),我想不出花括号的任何原因,有人可以解释花括号的目的吗? (对不起,我没有任何运气寻找以前的问题)

Foobar foobar = FoobarManager.getFoobar();
{
    foobar.setName("MyFoo");
    foobar.setTimestamp(timestamp);
}

1 个答案:

答案 0 :(得分:1)

这是一个java初始化程序块,它可以在你的构造函数的超级调用之后工作,你可以执行下一个代码

public class Test {
    public Test() {
        super();
        System.out.println("Hello");
    }

    {
        System.out.println("Bye");
    }

    public static void main(String[] args) {
        new Test();
    }
}

如果检查输出,结果为:

Bye
Hello

这是因为在执行初始化程序块之后将执行超级调用,之后执行构造函数的下一行。

如果你有许多构造函数并且想要独立于执行构造函数执行某些代码行,那么它会很有用