A voir également:
- Stackoverflow java
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
- Scanf en java ✓ - Forum Java
- Java heap space ✓ - Forum Java
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
10 janv. 2019 à 21:03
10 janv. 2019 à 21:03
Bonjour,
Le problème ce sont les toString de Voiture et Utilisateur.
La Voiture affiche le propriétaire, dont on affiche les voitures, pour lesquelles on affiche le propriétaire, duquel on affiche les voitures, qui ont un propriétaire, ayant des voitures, etc.
Tu as une récursivité croisé qui boucle à l'infini, mais la pile d'appel (Stack) est limité, donc au delà de 1024 ça dépasse (Overflow) d'où la StackOverflowError.
Modifies comme tu veux, un des toString voire les deux, mais il ne faut pas d'appel récursifs.
Le problème ce sont les toString de Voiture et Utilisateur.
"Voiture [nrPlaque=" + nrPlaque + ", proprietaire=" + proprietaire + "]"; "Utilisateur [nom=" + nom + ", voitures=" + voitures + "]";
La Voiture affiche le propriétaire, dont on affiche les voitures, pour lesquelles on affiche le propriétaire, duquel on affiche les voitures, qui ont un propriétaire, ayant des voitures, etc.
Tu as une récursivité croisé qui boucle à l'infini, mais la pile d'appel (Stack) est limité, donc au delà de 1024 ça dépasse (Overflow) d'où la StackOverflowError.
Modifies comme tu veux, un des toString voire les deux, mais il ne faut pas d'appel récursifs.
10 janv. 2019 à 22:26