我有以下代码,我想为此片段使用 Stream API:
for (Task task : deletedTasks) {
if (!Objects.isNull(task.getUser())) {
kafkaSenderTaskProducer.sendAutoRejectedTasksEvent(task.getId(), task.getUser().getId());
} else {
kafkaSenderTaskProducer.sendDeletedEvent(task);
}
}
对于第二个 else 条件我有代码,但我不知道如何为第一个条件编写代码:
deletedTasks.stream()
.filter(task -> Objects.isNull(task.getUser()))
.forEach(kafkaSenderTaskProducer::sendDeletedEvent);
如何使用 Stream API 来满足第一个条件?
这里不需要使用流或过滤器。简单的 forEach 将为您工作。在代码中不必要地使用流将会产生性能问题。您可以按照以下步骤操作:
deletedTasks.forEach(task -> {
if(task.getUser() == null) {
kafkaSenderTaskProducer.sendDeletedEvent(task);
} else {
kafkaSenderTaskProducer.sendAutoRejectedTasksEvent(task.getId(), task.getUser().getId());
}
})