Problème Iterable Array
Résolu
Hurobaki
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
Hurobaki Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Hurobaki Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
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
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
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