Я пытаюсь отфильтровать карту и извлечь значения путем сопоставления ключей со строками. Карта и значения могут быть либо строковыми, либо списочными. Ниже приведен фрагмент кода -
container.forEach((k, v) -> {
if (("userId").equals(k))
registerContainer.setUserId(v.toString());
if (("languageId").equals(k))
registerContainer.setUserLanguage(v.toString());
if (("formDetails").equals(k)) {
registerContainer.setFields((ArrayList) v);
}
if (("value1").equals(k)) {
HashMap fieldEntry = new LinkedHashMap<>();
fieldEntry.put("fieldKey", k);
fieldEntry.put("fieldValue", v.toString());
masterParams.add(fieldEntry);
}
if (("value2").equals(k)) {
HashMap fieldEntry = new LinkedHashMap<>();
fieldEntry.put("fieldKey", k);
fieldEntry.put("fieldValue", v.toString());
masterParams.add(fieldEntry);
}
if (!CollectionUtils.isEmpty(params)) {
registerContainer.setFields(masterParams);
}
});
Мой вопрос: есть ли способ исключить все операторы if и при этом иметь желаемый результат?
Заранее спасибо.