正如Peter Pei Guo所说,花括号在这里没有做任何事情。但值得注意的是其他一些东西:
它们不是这个上下文中的初始化块。显示的代码只在方法或构造函数体内才有意义。在这种情况下,大括号只是一个块声明...不是初始化块。
块语句可以意味着什么。例如:
public void method() {
{
Game game = new Game("Gladiator", null, 10);
game.setState(GameState.STARTING);
game.setJoinable(true);
}
{
Game game = new Game("Fashion Model", null, 10);
game.setState(GameState.STARTING);
game.setJoinable(true);
}
}
在这种情况下的块是提供一个范围,它允许我们声明第二games
变量没有编译错误。
但是你的问题中的代码没有使用这个。看起来作者对他的代码的视觉外观有“一件事”。
所以哪个块被执行时?
随着执行封闭块(或方法体),块语句按正常语句顺序执行。他们只是陈述,他们表现得像其他陈述。
每次创建实例时,实例初始化程序块都会按照任何其他字段声明/实例初始化程序的顺序执行。它们在显式或隐式构造函数链之后执行,但在当前类构造函数的其余部分之前执行。
您没有向我们展示足够的上下文绝对确定这些是什么类型的块......但我们认为您向我们展示了块语句。
那么哪个块在什么时候被执行? –