0

嗨,我在 g.getid(id1) 行上遇到空指针异常,我不知道如何修复它。

Iterator<String> it1 = players1.iterator();
Iterator<String> it2 = players2.iterator();
while (it1.hasNext()&&it2.hasNext()) {
    String id1 = it1.next();
    g.getID(id1); //NULL point exception?  :(

    //g.getId finds the player with the unique ID.
    String id2 = it2.next();
    g.getID(id2); //NULL referance exception? :(
}

我的目标是从构成 player1 和 player2 迭代器的列表中获取字符串,并且引用在 g.getId(id1); 中。和 g.getId(id2); 当它通过循环时,每个 ID 都是不同的。

g 是游戏类的引用。

受保护的游戏g;在游戏类中,getId 的方法如下 T getID(String id);

4

2 回答 2

0

看起来很可能g == null- 您是否尝试过使用调试器?或者也许就System.out.println(g)在循环之前?

编辑:查看您编辑的内容,g 绝对是空的。简单地编写protected Game g只会创建一个“游戏形”变量,如果你把一个游戏实例放在那里,它可能会打洞。在你这样做之前,那里只会有一个空值:

g = new Game();    // potentially, Game() takes some arguments too.
于 2013-03-22T06:38:28.997 回答
0

然后需要更多信息,添加您的完整代码,或者可以尝试

游戏 g = 新游戏();

于 2013-03-22T06:45:17.053 回答