juil.
2010
Java Quiz #40
Pour faire plaisir à votre chef de projet, ancien développeur, vous le laissez occasionnellement développer quelques fonctionnalités mineures de votre application.
Aujourd'hui, vous lui avez demandé d'itérer sur une liste pour en afficher le contenu : "Hello World". Malheureusement, un peu rouillé et distrait par son départ en vacances prévu pour le soir même, il a malencontreusement oublié de mettre "World" dans la liste lors de son initialisation ! Pour réparer cette erreur, il l'a inséré un peu plus loin, mais son code ne fonctionne plus et il ne comprend pas pourquoi ("ça doit être un bug de la JVM").
Avant de partir en vacances, il vous charge donc du problème, avec les instructions suivantes :
- Interdiction de modifier le code existant, qui est naturellement parfait
- Le
FIXMEindique la ligne où il vous autorise à insérer du code correctif - Il doit être capable de comprendre votre solution (l'usage de la Réflexion est donc interdit)
Saurez-vous vous montrer à la hauteur de la confiance que vous accorde de votre chef de projet bien-aimé ?
final List<String> list = new ArrayList() {{ add("Hello"); }}; final Iterator<String> iterator = list.iterator(); System.out.println(iterator.next()); list.add("World"); // FIXME : insert some magic code here System.out.println(iterator.next());
Note : ce quiz a été réalisé avec l'aide de Romain Revol, que j'ai eu le plaisir de former au cours Java Spécialist.
