2013-11-09 3 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(); 
} 

На , если оператор внутри для цикла я получаю в NullPointerException .. как я могу преодолеть это?

+5

Ваши переменные 'cars', вероятно, являются нулевыми в момент вызова if-блока. Ваша ошибка присутствует, но, вероятно, в другом месте вашего кода. Вы уверены, что не скрываете переменную автомобиля? То, что инициализируется переменная, является тем же самым, который читается? –

+1

Вы могли бы опубликовать трассировку стека? – Math

+1

На воздушной подушке вы можете написать свой ответ в качестве ответа. То, что вы сказали, заставило меня понять, что я пропустил инициализацию в вызываемом конструкторе. :) – Ciwan

ответ

3

Ваши переменные автомобили, вероятно, являются нулевыми в момент вызова if-блока. Ваша ошибка присутствует, но, вероятно, в другом месте вашего кода. Убедитесь, что вы не затеняете переменную автомобилей и что инициализированная переменная является той же, что и для чтения.

Смежные вопросы