我试图用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)
(游戏是我的主要功能)
知道我应该怎么写这个函数吗?
答案 0 :(得分:0)
此代码可以使用该堆栈跟踪抛出NullPointerException
的唯一可能位置是
char a = Players.deck.pop();
如果Players.deck
是null
。看起来你没有初始化你的套牌。
添加
assert(Players.deck!=null);
在方法的开头,看看它是否打嗝。