我有最後一個成員的數據最終的變量初始化:確保當一個構造函數拋出異常
public final Foo foo;
在構造
,foo
被初始化如下:
foo = new Foo();
現在,不幸的是,Foo的構造函數可能會拋出一個異常:
try {
foo = new Foo();
} catch (Exception e) {
e.printStackTrace();
}
但是現在編譯器公司mplains foo可能未被初始化,如果Foo的構造函數拋出異常,則爲true。但是,如果我把foo = null
放在收集括號內,它會抱怨foo可能已經被初始化。
Foo是我無法修改的第三方庫。
那麼,處理這個問題的最優雅的方式是什麼?
即使沒有try/catch塊,我也沒有收到編譯器的投訴。你是否讓你的類的構造函數拋出了Foo引發的異常? – 2012-04-09 19:49:48