Странное исключение - PullRequest
1 голос
/ 06 июня 2011

Привет, ребята, мы пытаемся сделать гоночную игру клиент-сервер для нашего семестрового проекта, но у нас есть странная ошибка

public void updatePosition(int id, ArrayList<Point2D.Float> positions){
    if(id==1){
        for (int i = 1; i < game.getS().getVehicles().size(); i++)
        {
            game.getS().getVehicles().get(i).updatePosition(positions.get(i));              
        }

    }else if(id==2){
        game.getS().getVehicles().get(1).updatePosition(positions.get(0));              
        for (int i = 2; i < game.getS().getVehicles().size(); i++)
        {
            game.getS().getVehicles().get(i).updatePosition(positions.get(i));  
        }

это наш код

и исключение находится в этой точной строке: . Game.getS () getVehicles () получаем (1) .updatePosition (positions.get (0));.

Ответы [ 2 ]

4 голосов
/ 06 июня 2011

Ссылки по умолчанию инициализируются нулем. Если вы создаете коллекцию или массив и не можете инициализировать ссылки, по умолчанию они будут нулевыми.

1 голос
/ 06 июня 2011

A NullPointerException может встречаться во многих местах в этом небольшом фрагменте кода.

В основном, когда у вас есть выражение вида a.b().c(), NullPointerException может быть брошено, если aравно null, или b() возвращает null.

Если вы не уверены, что все части такого выражения не равны NULL, вам необходимо выполнить явную проверку:

if (a != null) {
  WhateverObject intermediate = a.b();

  if (intermediate != null) {
    intermediate.c(); 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...