J'ai quatre boucles foreach qui parcourent les collections et, en fonction d'une condition, font quelque chose.
Voici le code que j'écris actuellement :
boolean breakFlag = false;
String valueFromObj2 = null;
String valueFromObj4 = null;
for(Object1 object1: objects){
for(Object2 object2: object1){
// I get some value from object2
valueFromObj2 = object2.getSomeValue();
for(Object3 object3 : object2){
for(Object4 object4: object3){
// Finally I get some value from Object4.
valueFromObj4 = object4.getSomeValue();
// Compare with valueFromObj2 to decide either to break all the foreach loop
breakFlag = compareTwoVariable(valueFromObj2, valueFromObj4 );
if(breakFlag){break;}
} // fourth loop ends here
if(breakFlag){break;}
} // third loop ends here
if(breakFlag){break;}
} // second loop ends here
if(breakFlag){break;}
} // first loop ends here
L'objet principal (les objets dans le code) provient d'un SDK d'un fournisseur tiers, je ne peux donc rien changer sur cette partie. Je veux demander à la communauté Stack Overflow s'il existe une meilleure approche pour casser les quatre boucles foreach. Ou s'il existe un autre moyen de remanier ce code pour le rendre plus lisible et plus facile à maintenir.
0 votes
Btw, c'est pour pas foreach .
3 votes
Non, la boucle for(Object o : os) est en fait connue sous le nom de foreach ou iterator.
0 votes
La version originale avait "foreach" dans le code lui-même. Merci pour l'édition.