Brak metody

0

Mam takie dwie klasy:

public class Gerbil {
    private int gerbilNumber;
    Gerbil(int gerbilNumber) {
        this.gerbilNumber = gerbilNumber; }
    public void hop() {
        System.out.println(gerbilNumber + " is hopping!");
    }
}

import java.util.*;

public class Main {
    public static void main(String args[]) {
        ArrayList gerbils = new ArrayList();
        Gerbil skoczek = new Gerbil(1);
        for(int i = 0; i < 10; i++) {
            gerbils.add(new Gerbil(i));
        }
        for(int i = 0; i < gerbils.size(); i++) {
            gerbils.get(i).hop();
        }
    }
}
 

Nie mogę tego skompilować, kompilator wskazuje, że metoda hop() nie istnieje. Wywoływałem ją w "normalny" sposób i wszystko działało. O co może chodzić?

0

Jak myślisz, co takiego może przechowywać "goły" ArrayList?
Powinieneś częściej czytać komunikaty kompilatora, a nie jedynie numer wiersza z błędem. ;)

3

Spytam o to samo co @Olamagato, ale trochę inaczej. Czy w klasie Object istnieje metoda hop?

0

@nowy325 począwszy od javy 1.5 jest coś takego jak typy generyczne, więc zamiast pisać ArrayList które trzyma gołe Objecty można napisać ArrayList<Integer> które będzie trzymać integery i get() na niej będzie zwracać integery :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1