java - Java 代码中的 NullPointerException

标签 java oop

我正在从 oracle 的网站学习 Java 和 OOPS。我在做this exercise .

当我运行此代码时,出现空指针异常。有人可以向我解释一下我做错了什么吗?

Card.java

public class Card {
 public enum Suits {
    SPADE,
    CLUB,
    DIAMOND,
    HEART       
  }

 public enum Ranks {
    Ace,
    DEUCE,
    THREE,
    FOUR,
    FIVE,
    SIX,
    SEVEN,
    EIGHT,
    NINE,
    TEN,
    JACK,
    QUEEN,
    KING    
  }

    public Ranks rank;
    public Suits suit;

    public Card(Card.Ranks rank,Card.Suits suit) {
        this.rank=rank;
        this.suit=suit;
    }
}

Deck.java

import java.util.*;

public class Deck {
    public ArrayList<Card> cards;
    private Card card;

    public Deck() {
        for(Card.Suits s: Card.Suits.values()) {
            for(Card.Ranks r:Card.Ranks.values()) {
                card=new Card(r,s);
                 cards.add(card);
            }
        }
    }
}

DisplayCards.java

public class DisplayCards {
    public static void main(String [] args) {
        Deck d=new Deck();
        for( Card c: d.cards) {
            System.out.println("Rank of the Card:"+c.rank.toString());
            System.out.println("Suit of the Card:"+c.suit.toString());  
        }
    }
}

最佳答案

public ArrayList<Card> cards;从未初始化,请使用public ArrayList<Card> cards = new ArrayList<Card>();

关于java - Java 代码中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755839/

相关文章:

java - java中重写匿名类的方法

java继承找不到符号

php - 将数组中的数据放入 html 组合框

Java & Jersey 1.17 : Custom default response headers

java - 如何根据行表(数据库)检查复选框?

JAVA KeyEvent序列化错误

php - 调整选择方法以接受多个参数

javascript - 我们可以从 jsonObject 创建实例吗?

java - 通配符类型到参数化类型

c# - 根据角色限制用户可以做什么