我正在尝试使用for循环逐个获取枚举值,而不需要指定所有可能的值,就像我在代码中所做的那样,用类似于Value.As
的内容替换,但是当我尝试这样做时,它对我不起作用:
public class Deck {
private LinkedList<Card> cardList;
public Deck(int nbBox) {
this.cardList = new LinkedList<Card>();
for (int i = 0; i < nbBox; i++) {
for (int j = 0; j < 52; j++) {
cardList.add(new Card(Value.AS, Color.CLUB));
}
}
}
public Card draw() {
return null; // not done yet
}
@Override
public String toString() {
return "Here is the deck : " +cardList;
}
public LinkedList<Card> getCardList() {
return cardList;
}
public void setCardList(LinkedList<Card> cardList) {
this.cardList = cardList;
}
}
最佳答案
您可以在for-each
上使用values()
loop这就如同对每件衣服一样,为每一个值添加一张新卡,卡上有衣服和值。另外,你可以使用diamond运算符
public Deck(int nbBox) {
this.cardList = new LinkedList<>(); // <-- diamond operator
for (int i = 0; i < nbBox; i++) {
for (Suit suit : Suit.values()) {
for (Value value : Value.values()) {
cardList.add(new Card(suit, value));
}
}
}
}