2015-06-08 67 views
4

我正在檢查變量是否被初始化,但在那時netbeans給我variable reader might not have been initialized警告。我如何解決/壓制這個?可能還沒有被初始化錯誤在空檢查

這是我的代碼(摘要):

final Reader reader; 
try { 
     reader = new Reader(directory); 
     //additional stuff that can cause an exception 
    } catch (Exception ex) { 
     //do stuff 
    } finally { 
     if (reader != null); 
    } 

的,如果檢查的重點是,以確定它是否被初始化。

這是什麼最佳做法?

回答

11

如果reader從未初始化,它甚至沒有空值。

變化

final Reader reader; 

Reader reader = null; 

,以確保它有一個初始值。

這樣,如果reader = new Reader(directory);引發異常,reader在由finally塊測試時將包含null

+0

當我這樣做時,我無法將讀者更改爲try語句中的內容 – WVrock

+0

@WVrock我錯過了它是最終變量的事實。將其更改爲非最終。 – Eran

1

你不能重新分配壓軸變量!你必須改變你的

最後的讀者閱讀器;

Reader reader = null; 

,並給讀者一個初始值。

相關問題