我在反应式编程方面相当新,我使用的是最后的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
我怎样才能做到这一点?我尝试过不好的事吗?
非常感谢
答案 0 :(得分:3)
这是一个java继承“问题”:你需要将你的方法声明为:
public Mono<User> saveUser(Mono<? extends User> userToSave)
(这被称为协变泛型类型。指导是“在你消耗的东西上更宽容”,因为经验法则消耗== extends
)