ArrayList
を含むクラスに問題があります。 コード: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(card > pile.getCard() || card == pile.getCard() - 10)
をしかしのIntelliJはできないと言います解決シンボルgetCard()
希望する結果を得るためにコードを変更するにはどうすればよいですか?真である
これは、 'getCard()'が 'ArrayList'で定義されたメソッドではないためです。 – azurefrog
'getCard'は' ArrayList'クラスのメソッドではないので、 'pile'に対して' getCard'を呼び出すことはできません。これは 'pile.getCard()'です。単に 'pile.getCard()'ではなく 'getCard()'を呼び出してください。 – Jesper
また、これをチェックして、コードを改善するのが面白いかもしれません:http://stackoverflow.com/a/14072408/7709364 –