Автопроводка bean-компонента Spring немного отличается от реализации конкретной реализации компонентов, не настроенных для Spring.Не бойтесь ключевого слова new
и определенной реализации.
Map<String, String> newMap = convertStringToList(input).stream().collect(HashMap::new,
(map, value) -> map.put(value, null), Map::putAll);
Это нормально, поскольку вы собираете Stream
в Map
, который являетсяинтерфейс.Spring не влияет на то, какая реализация будет использоваться при сборе потока, поэтому вы должны указать, что будет использоваться HashMap
(а не TreeMap
, например ...).
Если вы это сделаете...
Map<String, String> a = b.stream().collect(Map::new,
(map, value) -> map.put(value, null), Map::putAll);
Вот вам "Cannot instantiate the type Map
" - он нуждается в реализации, и Spring не отвечает за его предоставление.