У меня есть четыре петли foreach, которые проходят через коллекции и на основе состояния делают что-то. Вот код, который я сейчас пишу:Как разбить несколько циклов foreach?
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
Основной объект (объекты в коде) происходит от SDK третьего поставщика партии, так что я ничего не могу на этом участке изменяется. Я хочу спросить сообщество stackoverflow, если есть лучший подход, чтобы сломать все четыре цикла foreach. Или если есть какой-либо другой способ рефакторинга этого кода, чтобы сделать его более читабельным и поддерживаемым. Благодарю.
Btw, это * для * нет * foreach *. –
Нет, for (Object o: os) фактически известен как цикл foreach или iterator. – Esko
Оригинальная версия имела «foreach» в самом коде. Спасибо за редактирование. – royalGhost