我知道在构造函数中调用'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();
}
...
}
上面的代码显示了一些初始化的初始化块内的事情刚过“超级(图)”调用。将代码放置在构造函数的初始化块中的目的是什么,在调用super之后无论如何它肯定会运行。我在这里错过了什么吗?
那么“简单块”的目的是什么?为什么要使用它? – Joeblackdev
你可以有范围的优势..你可以在这个块做一些本地的东西。 –
好的,为了确保你定义的任何东西都不能在块之外访问?这就是为什么你会使用它们吗? – Joeblackdev