节点和堆栈添加错误

时间:2014-12-10 14:35:13

标签: stack nodes

我试图用Java创建一个卡片游戏的代码,但我遇到了一个问题。 我的牌组是一个Stack<Character>,我的班级名为Players,而我的手牌是{&#39}。是私人Node<Character>。 我已经创建了一种方法,可以从我的牌组中弹出一张牌并将其添加到我手中。 它的代码:

public void takeCard() {
    char a = Players.deck.pop();
    Node<Character> hand = new Node<Character>(this.hand);
    while(hand.getNext()!=null) {
        hand = hand.getNext();
    }
    Node<Character> next = new Node<Character>(a, null);
    hand.setNext(next);

    this.hand = hand;
}

它不起作用并告诉我

Exception in thread "main" java.lang.NullPointerException
at Players.takeCard(Players.java:56)
at Game.main(Game.java:31)

(游戏是我的主要功能)

知道我应该怎么写这个函数吗?

1 个答案:

答案 0 :(得分:0)

此代码可以使用该堆栈跟踪抛出NullPointerException的唯一可能位置是

char a = Players.deck.pop();

如果Players.decknull。看起来你没有初始化你的套牌。

添加

assert(Players.deck!=null);

在方法的开头,看看它是否打嗝。