2013-11-09 104 views
1

我想將類型爲Car的對象添加到汽車數組中,我沒有在數組中想要汽車進入的特定索引 ,我只想將汽車添加到第一個空的可用索引中,該索引中沒有汽車對象。這裏是我的代碼:檢查數組是否爲NULL特定索引返回NullPointerException

protected static final int MaxCars = 5; 
protected Car[] cars = new Car[MaxCars]; 

public void addCar(Car c) 
{ 
    for(int i = 0; i < MaxCars; i++) 
    { 
     if (cars[i] == null) 
     { 
      cars[i] = c; 
      break; 
     } 
    } 
    incrementNumInTeam(); 
} 

if語句裏面的for循環我收到一個NullPointerException ..我如何克服這個問題?

+5

變量'cars'在if塊被調用時可能爲空。你的錯誤存在,但可能在代碼中的其他地方。你確定你沒有把汽車變成陰影嗎?被初始化的變量與正在讀取的變量是否相同? –

+1

你可以發佈堆棧跟蹤嗎? – Math

+1

氣墊船可以寫你的答案。你所說的讓我意識到我錯過了被調用的構造函數中的初始化。 :) – Ciwan

回答

3

在調用if塊時,您的變量cars可能爲null。你的錯誤存在,但可能在代碼中的其他地方。檢查一下,確保你沒有隱藏汽車變量,並且被初始化的變量與正在讀取的變量相同。

相關問題