У меня есть четыре петли 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. Или если есть какой-либо другой способ рефакторинга этого кода, чтобы сделать его более читабельным и поддерживаемым. Спасибо.