2015-01-03 84 views
0

我正在嘗試製作一款二十一點遊戲,並且迄今爲止我做了一個Card類和Deck類。我試圖測試我的類,以確保一切正常工作通過打印出一個字符串中的甲板,但是當我運行該程序時,它給了我一個空指針異常,並告訴我問題是當我嘗試添加一張卡到我的數組卡一副撲克牌nullpointerexception

列表這是代碼這就是給我的問題

{ 
    deckSize = decks * CARDS_IN_DECK; 
    // Add cards to deck 
    for (int deck = 0; deck < decks; deck++) 
    { 
     for (int suit = 0; suit < 4; suit++) 
     { 
      for (int value = 1; value <= 13; value++) 
      { 
       cards.add(new Card(suit, value)); //error occurs here 
      } 
     } 
    } 

    // Shuffle cards 
    if (shuffle) 
    { 
     this.shuffle(); 
    } 
} 
+0

是什麼語言? 'cards'是如何聲明/初始化的? 「deckSize」有什麼意義? –

+0

我假設'cards'是一個列表。你初始化它嗎?如果是的話:在哪裏? –

回答

0

如果錯誤確實是在該行,你忘了使用newcards進行分配內存。

這意味着,如果cards數據類型是ArrayList,你應該做的:

ArrayList cards = new ArrayList(); 

被調用的cards任何方法之前。

0

您剛剛聲明瞭您的列表,但忘記初始化卡片列表。

初始化卡作爲前下方添加任何元素吧:

ArrayList<Card> cards = new ArrayList<Card>();