我正在尝试使用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));
            }
        }
    }
}

07-26 02:22