我認爲這個問題的具體用途如下,但它更加通用化。在構造函數結束之前如何引用/處理「this」?
我有一個自定義JFrame
類,它也可以作爲其組件的ActionListener
。所以我的構造看起來像下面這樣:
private JButton myButton;
public MyCustomFrame() {
super();
myButton.addActionListener(this);
// ... more stuff
}
我的問題是,這是如何在幕後工作?如果構造函數是「創建」this
引用的對象,那麼在構造函數返回之前如何使用this
?代碼編譯和工作完全正常(據我所知),因此該對象在某種意義上必須已經「存在」,但我擔心這可能會導致無法預料的問題。通過對addActionListener()
的「部分構建」引用(或者只是通常對其執行任何邏輯)有沒有任何危險?還是有一些幕後的魔法發生讓我安全?
例如,那些沒有默認值並且必須由構造函數提供的東西呢?如果我聲明瞭private final String SOME_VALUE;
,我知道這應該默認爲null
,但該對象不應該完全形成,直到常量在構造函數中提供一個值。那麼,儘管是最終的,參考文獻可能會改變價值嗎?
沒有直接連接到你的問題,但它可以爲你的目的http://stackoverflow.com/a/3404369/2350145 –