2012-05-12 7 views
1

が、私は「スレッドで例外 『エラーが出るメイン』 java.lang.NullPointerExceptionが」私はそれがデッキの充填に関係していると思います適切に充填されない配列のJava

[I2] 私がやろうとしているのは、forループが実行されるたびに値を追加することです。

誰かが間違っていることを教えてもらえますか?

public class Deck { 
    private Cards cards; 
    private String[] suits; 
    private String[] ranks; 
    private String[] deck; 
    private int i2; 


    public void Deck() { 
     //Instantiate class Cards 
     cards = new Cards(); 
     //run method to get cards/suits 
     suits = cards.getSuits(); 
     ranks = cards.getRanks(); 

     //Build an array (deck) and fill it with all possible cards 
     i2 = 1; 
     for (int i = 0; i < suits.length; i++) { 

      //Run through ranks 
      for (int i1 = 0; i1 < ranks.length; i1++) { 
       deck[i2] = suits[i] + ranks[i1]; 
       2++; 
      } 
     } 
    } 
} 

答えて

1

「デッキ」は初期化されていません。

deck = new String[ranks.length * suits.length]; 
のようになります。
1

deckフィールドには、それがNullPointerExceptionをスローアクセスし、初期化されていません。それを構築する前に、deckを初期化:

sizeOfDeckデッキの大きさを表す intある
deck = new String[sizeOfDeck]; 

1

deckアレイを初期化しましたか?同様の方法でCardsクラスでsuitsranks配列を初期化してください、また

deck = new String[ranks.length * suits.length]; 

:このどこか前外側forループのような文がなければなりません。

関連する問題