, так как вы звоните stream
на reports
, я предполагаю, что это какая-то коллекция;в таком случае нет ничего плохого в ваших побочных эффектах.Обратите внимание, что someCollection.stream().forEach
и someCollection.forEach
- это очень разные вещи, вы более чем нормально иметь побочные эффекты с SomeCollection::forEach
- который является не чем иным, как простым старым циклом внутри.
Вы могли бы преобразуйте это в потоковое решение, но оно будет намного менее читабельным:
reports.stream()
.map(r -> {
String oldReportId = report.getOldId();
Map<String, Set<EServiceReport>> eServiceReportsMapByBatchFile =....
return new SimpleEntry<>(oldReportId, eServiceReportsMapByBatchFile);
})
.collect(Collectors.toMap(
Entry::getKey,
Entry::getValue,
(left, right) -> right; // to match whatever you had until now
))