我正在从 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/