我知道在構造函數中調用'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