如何访问/操作 Flux / Mono 中的元素

How do I access / manipulate an element within a Flux / Mono

我需要访问 class 中的方法,它位于 Mono 中。我该怎么做?

我有:

 public Mono<LegalPerson> find(Long id) {
        return Optional.of(repository.findById(id)).orElseThrow(() -> new UserNotFoundException("Error"));
    }

这是我的问题:

   public void update(Mono<LegalPerson> legalPersonJson) {
        var legalPersonDB = find(legalPersonJson.map(legalPerson -> legalPerson.getId()));

我收到以下错误:

Incompatible types. Required Long but 'map' was inferred to Mono<R>: no instance(s) of type variable(s) R exist so that Mono<R> conforms to Long

这就是你需要做的

Mono<Long> legalPersonDB = legalPersonJson.map(legalPerson -> find(legalPerson.getId()))

您仍然需要订阅 Mono 才能执行。