Joe*_*dev 2 java constructor initialization
我知道初始化块在构造函数中调用'super()'后运行.但是,今天早上查看一些代码时,我发现了以下内容:
public class SimpleListLocalsAnalysis extends BackwardFlowAnalysis
FlowSet emptySet;
public SimpleLiveLocalsAnalysis(UnitGraph graph) {
super(graph);
{
Chain locals = g.getBody().getLocals();
FlowUniverse localUniverse = new FlowUniverse(locals.toArray());
emptySet = new ArrayPackedSet(localUniverse);
}
doAnalysis();
}
...
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了在'super(graph)'调用之后的初始化块内进行的一些初始化.将代码放在构造函数中的初始化块中的目的是什么,因为它在调用super之后无论如何都会运行.我在这里错过了什么吗?
它不是初始化块,它的简单块
就像
public void foo(){
{
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
目的:
您可以限制范围