Le ArrayList doit être défini sur statique. J'ai créé une méthode getter dans la classe principale (CityMenuCreate). Dans la deuxième classe, j'appelle la méthode et quand j'essaye de créer une fonction pour , elle ne reconnaît pas la liste.

La méthode que j'ai créée dans la première classe (CityMenuCreate)

public static ArrayList getCityList() {
    return cityList;
}

La partie du code que j'essaie d'appeler la méthode dans la deuxième classe

CityMenuCreate.getCityList();
for(int i=0; i< **cityList.size();** i++) {
            
}

Cela me donne une erreur dans le cityList.size (); . Y a-t-il un problème de syntaxe dans la fonction for?

1
Dean 22 août 2020 à 04:26

2 réponses

Meilleure réponse

Vous ignorez la valeur de retour de CityMenuCreate.getCityList(). Vous devez soit l'enregistrer dans une variable locale:

List cityList = CityMenuCreate.getCityList();
for (int i = 0; i < cityList.size(); i++) {
    // code
}

Ou utilisez-le simplement directement à partir de cette méthode:

for (int i = 0; i < CityMenuCreate.getCityList().size(); i++) {
    // code
}
1
Mureinik 22 août 2020 à 01:30

Dans l'exemple ci-dessus, vous avez déclaré votre méthode getCityList() comme statique, pas votre Arraylist. Par conséquent, vous ne pouvez pas accéder à votre Arraylist de manière statique. Vous déclarez votre Arraylist statique ou dans votre boucle for, vous appelez la méthode comme suit:

 for (int i = 0; i < CityMenuCreate.getCityList().size(); i++) {
     //Your code goes here
 }
1
Nikash 22 août 2020 à 01:35