如何使用 reactor.core.publisher Mono<T> 或 Flux<T> 继承?
How to use reactor.core.publisher Mono<T> or Flux<T> with inheritance?
我是反应式编程的新手,我使用的是最后一个 Spring 5 Webflux 框架,并在玩 so project reactor。我遇到了一个问题,我想将 Mono 与此继承模式一起使用:
客户端扩展用户
我创建了这个方法:
public Mono<User> saveUser(Mono<User> userToSave)
{
return userToSave.doOnNext(u -> {
// Some stuff
});
}
我现在不能将此方法与 Mono 作为参数一起使用,尽管 Client extends from User。
Mono<Client> client = ...
instance.saveUser(client); <-- Error
我怎样才能做到这一点?我会尝试一些不好的东西吗?
非常感谢
那是 java 继承 "problem":您需要将您的方法声明为:
public Mono<User> saveUser(Mono<? extends User> userToSave)
(这被称为协变泛型类型。指导是 "be more lenient in what you consume",作为经验法则消耗 == extends
)
我是反应式编程的新手,我使用的是最后一个 Spring 5 Webflux 框架,并在玩 so project reactor。我遇到了一个问题,我想将 Mono 与此继承模式一起使用:
客户端扩展用户
我创建了这个方法:
public Mono<User> saveUser(Mono<User> userToSave)
{
return userToSave.doOnNext(u -> {
// Some stuff
});
}
我现在不能将此方法与 Mono
Mono<Client> client = ...
instance.saveUser(client); <-- Error
我怎样才能做到这一点?我会尝试一些不好的东西吗?
非常感谢
那是 java 继承 "problem":您需要将您的方法声明为:
public Mono<User> saveUser(Mono<? extends User> userToSave)
(这被称为协变泛型类型。指导是 "be more lenient in what you consume",作为经验法则消耗 == extends
)