Java 奇怪的例外

Java 奇怪的例外,java,nullpointerexception,Java,Nullpointerexception,嘿,伙计们,我们正在尝试为我们的学期项目制作一个客户端-服务器竞赛游戏,但我们有一些奇怪的错误 public void updatePosition(int id, ArrayList<Point2D.Float> positions){ if(id==1){ for (int i = 1; i < game.getS().getVehicles().size(); i++) { game.getS().getVe

嘿,伙计们,我们正在尝试为我们的学期项目制作一个客户端-服务器竞赛游戏,但我们有一些奇怪的错误

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));  
        }
public void更新位置(int-id,ArrayList位置){
如果(id==1){
for(int i=1;i
这是我们的代码

例外情况就在这一行:
game.get().getVehicles().get(1).更新位置(positions.get(0));

引用默认初始化为null。如果创建集合或数组但未能初始化引用,则默认为null。

引用默认初始化为null。如果创建集合或数组但未能初始化引用,则默认为null。

a
NullPointerException可以出现在这个小代码片段的许多地方

基本上,当您有一个
a.b().c()
类型的表达式时,如果
a
null
,或者
b()
返回
null
,则可以抛出
NullPointerException

如果不确定此类表达式的所有部分都不是null,则必须执行显式检查:

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

  if (intermediate != null) {
    intermediate.c(); 
  }
}

NullPointerException
可以在这段代码的许多地方发生

基本上,当您有一个
a.b().c()
类型的表达式时,如果
a
null
,或者
b()
返回
null
,则可以抛出
NullPointerException

如果不确定此类表达式的所有部分都不是null,则必须执行显式检查:

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

  if (intermediate != null) {
    intermediate.c(); 
  }
}

异常具体在哪里?请阅读,异常具体在哪里?请阅读,我们可以更改什么,或者我们应该在哪里搜索?使引用不为空。您假设集合中有良好的数据,但JVM告诉您没有。检查您的假设。那么我们可以更改什么,或者应该在哪里搜索ch?使引用不为null。您假设集合中有良好的数据,但JVM告诉您没有。检查您的假设。