Может быть, я что-то упустил. Я получаю следующую ошибку, когда пытаюсь скомпилировать код, по сути следующий:
namedParameterJdbcTemplate.batchUpdate(SQL,
values.stream().map(val->new MapBuilder<String,Object>()
.put("param1",val.getSomeProperty())
.put("param2",val.getSomeOtherProperty())
.build())
.toArray(Map[]::new);
Почему-то это неоднозначно между batchUpdate (String, Map []) и batchUpdate (String, SqlParameterSource []).
SqlParamterSource не реализует Map. Так где же путаница? Даже инкрементный компилятор IntelliJ, похоже, не имеет проблем с кодом. Только когда я пытаюсь скомпилировать код из maven или запустить код, он помечает его как ошибку.
Я могу обойти эту проблему, изменив код следующим образом:
namedParameterJdbcTemplate.batchUpdate(SQL,
values.stream().map(val->new MapBuilder<String,Object>()
.put("param1",val.getSomeProperty())
.put("param2",val.getSomeOtherProperty())
.build())
.collect(Collectors.toList())
.toArray(new Map[0]);
Я пытался найти ответ, но все хиты только объясняют сценарий ios, где неоднозначность уже ясна (для меня). Однако этот сценарий меня озадачивает.
У кого-нибудь есть понимание?
Спасибо, Дейв