首页 > 解决方案 > Spring WebFlux Reactor - 在 Flux 中更新对象

问题描述

给定以下方法:

Flux<Person> getAllPerson(Criteria criteria) 

如何通过更改通量中每个 Person 对象中的字段来处理通量?

getAllPerson(criteria)
                .map(person -> person.setLastUpdated(new Date())

setLastUpdated(new Date()) 返回 void

我尝试了很多不同的方法,但我无法弄清楚使其编译的方法,例如:

getAllPerson(criteria)
                .map(person -> {
                     person.setLastUpdated(new Date())
                     return person;
                 });

标签: javareactive-programmingspring-webfluxproject-reactorreactive

解决方案


您可以使用doOnNext旨在执行这种副作用操作的运算符。

虽然,通常保持 Person 类不可变是一种更好的方法,当您需要修改某些内容时,您只需创建它的副本,在这种情况下,您将能够按预期使用 map 运算符。


推荐阅读