2011-04-26 50 views
3

這是我的情況。Java:如何從NullPointerException中提取取消引用對象的名稱/類型

在開發Java應用程序時,您偶爾會得到一個java.lang.NullPointerException。您可以打印堆棧跟蹤,它會告訴您空對象解除引用的類和行號。通常情況下,找出哪個對象可能爲null是很簡單的(您可以始終檢查在該語句中解除引用的所有對象的無效性)。

是否有可能通過NullPointerException以編程方式知道哪個引用對象爲null(如果在同一語句中使用多個不同的對象)?

回答

2

根據定義沒有任何對象。該參考爲空。

再次讀你的問題,我想我誤解了。我想你的意思是你有這樣的:

if(ref1.method() && ref2.method()) { 
     .... 
    } 

,你想知道,如果REF1或REF2爲空。

如果是這樣,那麼沒有。將聲明拆分爲單獨的行。

+0

你是對的。我應該使用術語「參考」而不是「對象」。所以唯一的辦法是或者我將檢查每個引用的語句分開,如果它是空的。 – 2011-04-26 18:07:25

0

理論上你可以..在實踐中你不能...我的意思是......這是可能的。構建你將不得不擴展JVM或試圖找到另一個困難的解決方案。

1

不,你不能這樣做(在一般情況下)。原因是Java(和大多數其他語言一樣)沒有跟蹤中間結果。

4

一個對象不能是null只有一個引用可以是null。檢查哪個引用爲空的最簡單方法是在不同的行上引用每個值。

相關問題