【发布时间】:2021-11-25 21:24:43
【问题描述】:
我的方法将Mono<String> 响应返回给控制器。但是,我在尝试返回 String 值时收到以下 error。
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
}));
}
我是响应式编程的新手,我可能犯了一个愚蠢的错误,但我希望能得到一些帮助。谢谢!
【问题讨论】:
-
Reactive 确实很难学!如果不对代码有更深入的了解,就很难说清楚。但我想说问题出在
.withTransaction部分。也许你可以把它分成另一个.map()。withTransaction实际上是什么?它接受和返回什么? -
withTransaction()是另一个服务中用于将对象持久保存到数据库的方法。它接受一个 lambda 函数并返回一个<T>。
标签: java lambda functional-programming reactive-programming project-reactor