Java 尝试将字段数组用作参数时出现NullPointerException

Java 尝试将字段数组用作参数时出现NullPointerException,java,arrays,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"};

所以我正在测试我的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;
            }
        }
    }
公共类甲板{
私有静态最终字符串面[]={“Ace”、“二”、“三”、“四”、“五”、“六”、“七”,
“八”、“九”、“十”、“杰克”、“女王”、“国王”};
私人静态最终弦乐套装[]={“黑桃”、“俱乐部”、“钻石”、“心脏”};
私人静态最终卡牌[]=新卡[52];
公共甲板(){
int suitCount=0;
int faceCount=0;
int faceValue=0;
对于(int i=1;i
正如您所看到的,我已经在数组中定义了面和套装,并且我想将它们指定给适当的值,但是当我尝试运行它时,在
deckOfCards[I].setSuit(suit[suitCount]);


我似乎不明白为什么它会给我这个错误,当我调试它时,它似乎初始化了所有字段,但当它到达那里时它崩溃了。

你初始化了数组,但没有初始化数组中的元素。你可以在循环中这样做:

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

可以初始化数组,但不能初始化数组中的元素。可以在循环中进行初始化:

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