当方法返回类型为 Mono <String>时返回字符串值



我的方法将Mono<String>响应返回给控制器。然而,我得到以下error在试图返回String价值。

Required Type: Mono<String>, 
Provided: Mono<Object>
no instance(s) of type variable(s) T exist so that Mono<T> conforms to String inference variable R has incompatible bounds: equality constraints

服务:

public Mono<String> moveToDB(String pid, String op, MoveRequest moveRequest) {
return Mono.just(pid)
.subscribeOn(Schedulers.boundedElastic())
.map(id -> persistenceService.withTransaction((s, em) -> {
//some code goes here
if (condition)
return "data sync failed"; //ERROR
return "data synced successfully"; //ERROR
}));
}

我是响应式编程的新手,我可能犯了一个愚蠢的错误,但我很感激你在这方面的帮助。谢谢!

我猜withTransaction()方法不返回String,因为它应该。您应该将返回值映射到String:

.map(id -> service.withTransaction((s, em) -> {
//some code goes here
if (true)
return "data sync failed";
return "data synced successfully";
}))
.map(e -> e.toString()); //or whatever

最新更新