我是JAVA新手,我遇到了下面的代码片段。
我的问题是关于围绕2个setter调用的花括号。
我在编码约定http://www.oracle.com/technetwork/java/codeconventions-150003.pdf中找不到任何解释这个代码片段的东西。
除了限定setter调用的作用域(但我不明白需要这样做),我想不出花括号有什么原因,有人能解释一下花括号的用途吗?(很抱歉,我在寻找之前的问题时没有任何运气)
Foobar foobar = FoobarManager.getFoobar();
{
foobar.setName("MyFoo");
foobar.setTimestamp(timestamp);
}发布于 2015-06-24 02:19:55
这是一个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这是因为fist将执行超级调用,之后将执行初始化程序块,然后是构造函数的下几行。
如果您有许多构造函数,并且希望独立于所执行的构造函数来执行某些代码行,那么它将非常有用。
https://stackoverflow.com/questions/31010329
复制相似问题