嘿伙计们,我们正在尝试为我们的学期项目制作一个客户端 - 服务器赛车游戏,但我们有一些奇怪的错误
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));
答案 0 :(得分:4)
默认情况下,引用初始化为null。如果创建集合或数组,并且无法初始化引用,则默认情况下它们将为null。
答案 1 :(得分:1)
NullPointerException
可以在这个小代码段中的许多地方出现。
基本上,当您的表达式为a.b().c()
时,如果NullPointerException
为a
,或null
返回{b()
,则可以抛出null
{1}}。
如果您不确定此类表达式的所有部分都不为null,则必须执行显式检查:
if (a != null) {
WhateverObject intermediate = a.b();
if (intermediate != null) {
intermediate.c();
}
}