У меня есть код ниже. Все, что я хотел из кода, это
- , если указанная локаль в аргументе метода присутствует в labelList, вернуть его или
- проверить, присутствует ли EN_US в labelList, а затем вернуть его
String LOCALE = "locale";
List<Map<String, Object>> labelList = // coming for other class
...
public Object resolveData(String locale) {
Map<String, Object> enUSLabel = null;
locale = locale!= null && !locale.isEmpty() ? locale: EN_US;
for (Map<String, Object> picklistLabel : labelList) {
if (picklistLabel.get(LOCALE).equals(locale)) {
return picklistLabel;
} else if (EN_US.equals(picklistLabel.get(LOCALE))) {
enUSLabel = picklistLabel;
}
}
return enUSLabel;
}
У меня проблема с сонаром (по адресу enUSLabel = picklistLabel;)
Корректность - этот метод продолжается al oop после нахождения условия равенства Этот метод продолжается с al oop и не вылезает из нее после нахождения и установки переменной в условии if, основанном на равенстве. Поскольку продолжение в l oop, по-видимому, вряд ли снова найдет предмет, нарушение в этой точке будет правильным действием.
Как исправить это? Возможно ли в одном для l oop?