2012-04-12 352 views
0

我正在使用java。此代碼的第二行獲取空指針異常。爲什麼我在這裏得到一個空指針異常?

double gpa = 0.0; 
gpa = grads[index].calculateGPA(); 
return gpa; 

grads是一個Graduate對象的數組。我已經在JUnitTest中測試了這個方法,它工作正常。我也測試了calculateGPA()。只有當我運行程序時出現錯誤。

+0

'grads'數組是如何初始化的? – Bernard 2012-04-12 15:41:05

+0

當你得到異常時,你是否檢查過'index'和'grads [index]'的值,還是試圖在調試器中運行它? – Karlson 2012-04-12 15:41:05

+0

如果你得到這樣的異常,你的第一步應該是添加'System.out.println(「grads is null:」+(grads == null)+「grads [index] is null:」+(grads [ index] == null));'在拋出異常之前的行上。 – Alderath 2012-04-12 15:43:23

回答

6

的錯誤可能是由下列可能性中的一種引起:

  1. gradsnull
  2. indexnull
  3. grads[index]null
  4. calculateGPA()正在引發空指針異常。

使用您的調試器來找出這些可能性中的哪一個,然後從中取出。

+2

或者'grads'數組整體是'null'(未初始化)。 – Bernard 2012-04-12 15:40:39

+1

或'index'是一個'Integer'並且爲空。 – 2012-04-12 15:53:54

+0

好吧,我們現在最多有4名候選人。任何提前4?! ;-) – 2012-04-12 15:55:51

相關問題