我有一个方法,它返回公司作为键和员工列表作为值:
我的其他尝试:
<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().stream().map(user -> user.getName() + " " + user.getLastname()).collect(Collectors.toList()))));
错误是:apply (domain.User) in Function cannot be applied to (java.util.List<domain.User>)
我的问题是,我不知道如何将“apply”方法传递给员工列表而不是完整的列表。我的其他尝试:
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())));