如何使用reactor.core.publisher Mono <t>或Flux <t>继承?

时间:2018-01-13 08:36:36

标签: project-reactor spring-webflux

我在反应式编程方面相当新,我使用的是最后的Spring 5 Webflux框架并使用了这样的项目反应器。我正面临一个问题,我想在这个继承模式中使用Mono:

客户扩展用户

我创建了这个方法:

public Mono<User> saveUser(Mono<User> userToSave)
{
    return userToSave.doOnNext(u -> {
        // Some stuff
    });
}

我现在不能将此方法与Mono&lt;客户&gt;尽管客户端从用户扩展,但作为参数。

Mono<Client> client = ...
instance.saveUser(client); <-- Error

我怎样才能做到这一点?我尝试过不好的事吗?

非常感谢

1 个答案:

答案 0 :(得分:3)

这是一个java继承“问题”:你需要将你的方法声明为:

public Mono<User> saveUser(Mono<? extends User> userToSave)

(这被称为协变泛型类型。指导是“在你消耗的东西上更宽容”,因为经验法则消耗== ​​extends