1

运行下一个代码时,出现错误“线程“main”java.lang.NullPointerException中的异常

我认为这与deck[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++;
            }
       }
    }
}
4

3 回答 3

1

你初始化deck数组了吗?在外循环之前的某处必须有这样的语句:for

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

此外,请务必以类似的方式初始化类中的suitsranks数组。Cards

于 2012-05-12T20:09:31.930 回答
1

你从来没有初始化过'deck'。应该是这样的:

deck = new String[ranks.length * suits.length];
于 2012-05-12T20:10:27.920 回答
1

deck字段尚未初始化,因此访问它会引发NullPointerException. 在构建它之前,初始化deck

deck = new String[sizeOfDeck];

哪里sizeOfDeckint代表甲板的大小。

于 2012-05-12T20:09:25.613 回答