Problème Iterable Array
Résolu
Hurobaki
Messages postés
58
Statut
Membre
-
Hurobaki Messages postés 58 Statut Membre -
Hurobaki Messages postés 58 Statut Membre -
Bonjour à tous,
Voici mon problème :
Ma classe Garage1 :
Mon problème se situe dans mon Main.java, au niveau de l'itération de la boucle for.
Je reçois l'erreur : Can only iterate over an array or an instance of java.lang.Iterable.
Je comprends que garage est une instance de ma classe Garage1 mais j'aimerai pouvoir parcourir la liste que contient justement cette classe.
Je ne vois pas trop comment contourner ce problème...
Merci d'avance à ceux qui pourront m'éclairer ! :D
Voici mon problème :
public static void testGarage1() {
Garage1 garage = new Garage1();
garage.add(new Vehicule(5.7));
garage.add(new Vehicule(6.2));
garage.add(new Vehicule(8.5));
garage.add(new Vehicule(5.9));
garage.add(new Vehicule(4.5));
System.out.println(garage);
for(Vehicule vehicule : garage) {
vehicule.faireLePlein();
vehicule.rouler(Math.random() * 1000);
}
Ma classe Garage1 :
import java.util.*;
public class Garage1 {
private List<Vehicule> garage;
public Garage1()
{
this.garage = new ArrayList<>();
}
public void add(Vehicule v)
{
this.garage.add(v);
}
Mon problème se situe dans mon Main.java, au niveau de l'itération de la boucle for.
Je reçois l'erreur : Can only iterate over an array or an instance of java.lang.Iterable.
Je comprends que garage est une instance de ma classe Garage1 mais j'aimerai pouvoir parcourir la liste que contient justement cette classe.
Je ne vois pas trop comment contourner ce problème...
Merci d'avance à ceux qui pourront m'éclairer ! :D
A voir également:
- Java can only iterate over an array or an instance of java.lang.iterable
- Or - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
Comme indiqué dans le message d'erreur, la boucle for-each ne peux itérer que sur des objets qui implémentent l'interface Iterable.
Il faudrait donc implémenter cette interface dans ta classe Garage1.
Le plus simple étant de réutiliser l'itérateur de ta liste.
Comme indiqué dans le message d'erreur, la boucle for-each ne peux itérer que sur des objets qui implémentent l'interface Iterable.
Il faudrait donc implémenter cette interface dans ta classe Garage1.
Le plus simple étant de réutiliser l'itérateur de ta liste.
public class Garage1 implements Iterable<Vehicule> {
private List<Vehicule> garage;
@Override
public Iterator<Vehicule> iterator() {
return garage.iterator();
}La confiance n'exclut pas le contrôle