0

在我的二十一点中,我让玩家击打或站立,然后测试结束循环你有这个代码:

int runLoopCount1 = 0;
    for (int i = 0; i < players.length; i++) {
        if (players[i].wantSplit = false){
                if(players[i].getStatus() == true){
                    runLoopCount1++;
                }
        }

        else if (players[i].wantSplit = true){
            if ((players[i].splits[0].busted == true||
                 players[i].splits[0].standed == true) &&
                (players[i].splits[1].busted== true ||
                 players[i].splits[1].standed == true)){ // null pointer here 
                        runLoopCount1++;
                }
            }
        }
                
   if(runLoopCount1 == players.length){
        runLoop = false;
   }

现在我得到一个NullPointerException. 我不知道为什么?

4

3 回答 3

2

你是真的意思if(players[i].wantSplit = false)还是if(players[i].wantSplit == false) 一样if(players[i].wantSplit = true)if(players[i].wantSplit == true)

于 2012-11-29T22:45:22.677 回答
0

很可能splits在每个播放器中都没有正确初始化。

players[i].splits[0].standed
于 2012-11-29T22:45:14.513 回答
0

这意味着您正在尝试访问未实例化的对象。例如,如果你这样做:

players[i].wantSplit

但是players[i]没有实例化,那么会抛出空指针异常

于 2012-11-29T22:46:24.903 回答