java - 尝试使用字段数组作为参数时出现 NullPointerException

标签 java arrays nullpointerexception

所以我试图测试我的 DeckOfCards 数组是否能够正确打印。这是代码

public class Deck {
    private static final String face[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", 
                                            "Eight", "Nine", "Ten", "Jack", "Queen", "King"};
    private static final String suit[] = {"Spade", "Club", "Diamond", "Heart"};
    private static final Card deckOfCards[] = new Card [52];

    public Deck(){
        int suitCount = 0;
        int faceCount = 0;
        int faceValue = 0;
        for(int i = 1; i < deckOfCards.length; i++){
            deckOfCards[i].setSuit(suit[suitCount]);
            deckOfCards[i].setFace(face[faceCount], faceValue);
            suitCount++;
            faceCount++;
            faceValue++;
            if(suitCount == 3){
                suitCount = 0;
            }
            if(faceCount == 12){
                faceCount = 0;
            }
            if(faceValue == 13){
                faceValue = 1;
            }
        }
    }

正如你所看到的,我已经在数组中定义了脸部和套装,并且我想将它们分配给正确的值,但是当我尝试运行它时,我在 deckOfCards[i].setSuit(suit[suitCount]); 行收到 nullPointerException

我似乎无法弄清楚为什么它给我这个错误,当我调试它时,它似乎初始化了所有字段,但是当它到达那里时它崩溃了。

最佳答案

您初始化了数组,但没有初始化其中的元素。您可以在循环中执行此操作:

deckOfCards[i] = new Card();
deckOfCards[i].setSuit(suit[suitCount]);

关于java - 尝试使用字段数组作为参数时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070913/

相关文章:

java - 为什么允许从另一个构造函数调用一个构造函数?

java - Android MediaPlayer 重置卡住 UI

javascript - 如何在一个 div 中构建一个包含所有输入类的数组?

java - java中如何只抓取二维矩阵的某一行?

java - 什么是NullPointerException,我该如何解决?

java - 使子类在不覆盖的情况下返回自身

java - 再次出现 NullPointerException - intersects()

javascript - 将 HTML 表格转换为数组 (JavaScript)

java - 使用 Intent 启动新的 Activity。 NPE 位于 android.content.ContextWrapper.getPackageName

java - 使用对象数组时出现 NullPointerException