Отслеживание местоположения автомобиля - PullRequest
0 голосов
/ 04 декабря 2018

Я пытался отслеживать скорости транспортных средств на определенной дороге, на этой дороге есть автостоянки.Это код, который я сделал для отслеживания каждого транспортного средства в определенной группе населения. Этот код выполняется в блоке событий, который запускается каждые 15 секунд.

for (i = 0 ;i < car.size(); i++){
	if(car(i).isCarOn(road1)){
		car(i).id.setText(String.valueOf(i));
		vCar = autos(i).getSpeed();
		text = text + System.lineSeparator() + "Car (" + i + "):" + vCar;	
	}else if (car(i).isCarOn(road)){
		car(i).id.setText(String.valueOf(i));
		vCar = car(i).getSpeed();
		text2 = text2 + System.lineSeparator() + "Car (" + i + "):" + vCar;		
	}
}

проблема в том, что когда автомобиль переходит с дороги на стоянку, он выдает ошибку NullPointerException, есть ли способ исправить эту проблему, отслеживать скорость этих транспортных средств?Также было бы здорово, если бы было объяснение этой ошибки.

Заранее спасибо

1 Ответ

0 голосов
/ 04 декабря 2018

Хорошо, после ваших разъяснений почти наверняка ошибка возникает из-за того, что автомобили слишком быстро выходят на дорогу и остаются в очереди carSource.

Когда автомобили находятся в этой очереди, к ним нельзя получить доступкак машины, даже если они существуют в автомобильной среде ... Это может быть странно, но это так.

Теперь, если вы хотите узнать скорость на определенной дороге, вы должны получить машины на этой дороге:

for (Car c : road.getCars(true)){//true means forward lane
    vCar=c.getSpeed();
}
for (Car c : road.getCars(false)){//false means backwards lane
    vCar=c.getSpeed();
}

Тем не менее, чтобы продолжить делать то, что ты делаешь, я давно снял видео на эту тему ... к сожалению, оно немного длинное (7 минут) и скучное (я тестировал)мои способности на YouTube), но это связано с вашей проблемой ... это хитрость, чтобы избежать проблем с этой очередью carSource: https://www.youtube.com/watch?v=EgYqraEibD4

...