我在编写包含ArrayList的类时遇到了麻烦。
码:

import java.util.ArrayList;


public class AscendingPile {
 public ArrayList<Integer> pile = new ArrayList<Integer>() {{
     add(1);
 }};

public void lay(int card) throws IllegalArgumentException{
    int lastCard = pile.get(pile.size() - 1);
    if(card > lastCard || card == lastCard - 10){
        pile.add(card);
    }
    else {
        throw new IllegalArgumentException("....");
    }
}
// returns last card on the deck
public int getCard() {
    return pile.get(pile.size() - 1);
}


}

问题是lay方法:我不想定义一个新的局部变量,而是希望if语句看起来像这样:

if(card > pile.getCard() || card == pile.getCard() - 10)


但是IntelliJ说无法解析符号getCard()

如何更改我的代码以获得所需的结果?

最佳答案

但是IntelliJ说无法解析符号getCard()


是的,ArrayList类没有名为getCard()的方法。

而不是:

pile.getCard();


不要直接调用类AscendingPile的方法

getCard();

10-06 11:26