У меня есть несколько простых файлов JSON с синтаксисом
"key1": "value1"
"key2": "value2"
и т.д.
Мне нужно создать Карту из каждого из них, а затем объединить их в одну. Следующий код работает так, как предполагается:
private TranslationBundle assembleBundle(List<String> translations) {
TranslationBundle translationBundle = new TranslationBundle();
Map<String, String> bundledTranslationMap = new HashMap<>();
translations.forEach(translation -> {
bundledTranslationMap.putAll(getSingleTranslationMap(translation).);
});
translationBundle.setTranslationMap(bundledTranslationMap);
return translationBundle;
}
private Map<String, String> getSingleTranslationMap(String translation){
ObjectMapper mapper = new ObjectMapper();
try{
return mapper.readValue(translation, new TypeReference<Map<String, String>>(){});
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
Чего я хочу добиться, так это переписать код в методе assembleBundle
в более функциональный, такой как
translations.stream().
map(this::getSingleTranslationMap)
.collect(collect to single HashMap);
В методе collect()
, насколько я знаю, мне нужно каким-то образом получить доступ к ключу и значению для каждого результата getSingleTranslationMap
. Поскольку нет имени переменной, присваиваемой результату этого метода, как это должно быть сделано? Может, я вообще пытаюсь ошибиться?