我的 Controller 中有以下代码,从第一个列表中我获取所有用户,然后迭代向他们发送电子邮件。不知何故,在函数 sendEmail()
中,我有义务返回一个对象,但我不需要返回任何内容。
List<User> users = new ArrayList<User>();
menuPriceSummaryService.findAll()
.stream()
.map (mps -> checkPreferences(mps))
.iterator()
.forEachRemaining(users::addAll);
users
.stream()
.map (o -> sendEmail(o))
.iterator();
最佳答案
map
在您的场景中不是正确的操作。 forEach
是,因为它是一个终端操作(因此您不需要在其后进行任何调用),并且它只消耗 Stream
元素而无需返回任何内容:
users.stream().forEach (o -> sendEmail(o));
或者您可以直接在 List
上调用 forEach
,如 Aris 所建议:
users.forEach (o -> sendEmail(o));
关于Java8 列表。调用空函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913905/