Java8 列表。调用空函数

标签 java lambda collections java-8 java-stream

我的 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/

相关文章:

java - org.mockito.exceptions.misusing.MissingMethodInitationException : when() requires an argument which has to be 'a method call on a mock'

java - java中如何调用使用泛型类型的类?

java - 更改两种类型参数边界的顺序会导致 Java 运行时错误

java - ArrayList 删除时出现问题

collections - 将 int 列表折叠为 kotlin 中的范围列表

java - Eclipse:缺少项目描述文件 (.project)

java - Android 错误 : invoke a null object. JSON/Volley

python - 在 Python 中定义函数列表

java - 谓词与 if 语句

java - BlockingQueue : What are the differences between SynchronousQueue and LinkedBlockingQueue 的实现