Mono<T>
和Flux<T>
作为参数在函数中的用例是什么。
代码
Flux<String> findByLastName(Mono<String> lastname) {
//implementation
}
当我从休息中调用上述方法时,不使用String.class
作为参数会有什么不同?
答案 0 :(得分:2)
要回答您的第一个评论问题:
@ErwinBolwidt我知道在计算中使用Mono / Flux的用例,但我不明白使用它作为方法参数– Bibek Shakya
当使用它作为参数时,必须将其作为流处理(意味着您还没有),例如,您永远不要说lastname.block(),因为这意味着您刚刚被阻止了直到该值可用为止的线程。
免责声明其他信息
如果您要询问从现在开始应该将任何东西包装在Mono或Flow中,那么当然不要,因为这会给方法和调用方增加不必要的复杂性。
从设计角度来看,回答基本问题的方法很简单:
因此,我们不应该考虑谁在使用该方法并尝试使该方法对他方便,但实际上,我们应该考虑该方法的需求。
一个用例是方法实际上需要这种方式的参数时;这意味着您实际上是在内部进行流处理,例如您的方法接受无限量的传感器数据流,并且内部的方法像这样疯狂:
Flux<Point> processSensor(Flux<Double> data){
return data.filter(blabla).zipWith(blabla).map(...);
}
答案 1 :(得分:0)
只有用例我能想到方法参数为Mono<String> lastname
lastname
为此,方法的返回类型必须是a org.reactivestreams.Publisher(即Mono / Flux)。