不能从静态上下文中引用非静态变量 deck

non-static variable deck cannot be referenced from a static context

我收到错误消息,无法从这段代码的静态上下文中引用非静态变量甲板。我想了解那里出了什么问题。我是 java 的新手。

public class CardDeck extends java.lang.Object 
{
    private  int size;
    private Stack<Card> deck;
    public CardDeck(int size)
    {
        this.deck = new Stack<Card>();
        this.size = size;
    }
    public static CardDeck createStandardDeck()
    {

            for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.CLUBS,i)); }
            for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.DIAMONDS,i)); }
            for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.HEARTS,i)); }
            for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.SPADES,i)); }
        return deck;
    }

改变你的方法如下:

public static CardDeck createStandardDeck() {
    CardDeck myDeck = new CardDeck(13*4);
    for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.CLUBS,i)); }
    for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.DIAMONDS,i)); }
    for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.HEARTS,i)); }
    for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.SPADES,i)); }
    return myDeck;
}