У меня есть метод, который возвращает компанию в качестве ключа и список сотрудников в качестве значений <T> Map<String, List<T>> getUserPerCompany(final Function<User, T> converter)
.Метод принимает параметр converter
, который в тестах возвращает строку (имя + фамилия сотрудника).Должно вернуть: Map<String, List<String>>
.Я создал эту реализацию:
return getUserStream().collect(toMap(Company::getName, c -> converter.apply(c.getUsers())));
Ошибка: apply (domain.User) in Function cannot be applied to (java.util.List<domain.User>)
Моя проблема заключается в том, что я не знаю, как передать сотрудника на «применение»список вместо списка полностью.
Мои другие попытки:
return getUserStream().collect(toMap(Company::getName, c -> converter.apply((User) c.getUsers().listIterator())));
return getUserStream().collect(toMap(Company::getName, c -> converter.apply((User) c.getUsers().subList(0, c.getUsers().size()))));
return getUserStream().collect(toMap(Company::getName, c -> converter.apply((User) c.getUsers().iterator())));