我正在参加AP Comp Sci并在实验室工作" elevens"。我试图做的就是实例化" Deck"的对象。 class,我的构造函数抛出一个NullPointerError。在进行打印检查后,我发现第一个索引正确找到,它是第二个引发错误的索引。我需要在Deck类或主要方法中更改以解决此问题?
public Card(String cardRank, String cardSuit, int cardPointValue)
{
suit = cardSuit;
rank = cardRank;
pointValue = cardPointValue;
}
private ArrayList<Card> cards;
public Deck(String[] ranks, String[] suits, int[] values)
{
for(int i =0; i < suits.length; i++)
{
cards.add(new Card(ranks[i], suits[i], values[i]));
size++;
}
}
public static void main(String[] args)
{
String [] suits = new String [] {"Spades", "Hearts", "Diamonds"};
String [] ranks = new String [] {"Queen", "King", "Ace"};
int [] points = new int [] {10, 10, 11};
Deck deck = new Deck(ranks, suits, points);
}
答案 0 :(得分:3)
当您说private ArrayList<Card> cards;
时,等同于
private ArrayList<Card> cards = null;
这就是构造函数中cards
为null
的原因。将其更改为 1
private List<Card> cards = new ArrayList<>();
或者,在cards = new ArrayList<>();
循环之前(在构造函数中)添加for
。
,您似乎缺少球杆和插孔
String [] suits = {"Clubs", "Spades", "Hearts", "Diamonds"};
String [] ranks = {"Jack", "Queen", "King", "Ace"};
1 并且更喜欢编程到List
接口。