繁体   English   中英

没有正确填充数组Java

[英]Not properly filling array Java

运行下一个代码时,我收到错误“ 线程中的异常”主“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++;
            }
       }
    }
}

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

deck = new String[sizeOfDeck];

其中sizeOfDeck是一个表示套牌大小的int

你初始化了deck阵列了吗? 在外部for循环之前必须有这样的语句:

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

此外,一定要初始化suitsranks在阵列Cards类以类似的方式。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM