Java Simple BlackJack Game,java.lang.NullPointerException

时间:2011-11-21 18:46:29

标签: java arrays blackjack

我正在编写一个java程序来制作简单的二十一点游戏。

我正在使用一组卡片对象作为用户手。

用户将手中拿出两张卡,但是他们可以要求另一张卡,直到他们达到5张卡的限制。

出于这个原因,我制作了5个插槽的卡片对象阵列,以便可以将更多的卡片添加到手中。

但是现在我无法在发出时打印原始手牌,或者如果用户没有要求完整的5张牌,因为我的阵列将有null个对象。

解决此问题的最快捷,最简单,最简单的方法是什么?

4 个答案:

答案 0 :(得分:4)

放置行以在if语句中打印卡的值,该语句检查数组值是否为null。类似的东西:

for(int i = 0; i < cardArray.length ; i++)
{
  if(cardArray[i] != null)
      System.out.print(cardArray.value);
}

答案 1 :(得分:3)

不要使用数组 - 使用List,也许是ArrayList。

然后,您可以简单地说:

for (Card card : hand) {
  System.out.println(card);
}

我假设您的Card类有toString()方法,而'hand'是List&lt; Card&gt;

答案 2 :(得分:2)

如您所知,您无法访问null对象内的任何内容。在这种情况下,如果打印时为5,则应检查每张卡中的每张卡。

答案 3 :(得分:1)

在执行任何操作之前检查null:

if(x[i] == null){
    don't.do.anything();
}else {
    print.something();
}

这些方法显然是假的,但尝试类似的东西。

但正如上面的评论所说,你最好选择一个清单。