我在编写包含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();