因此,我使用WebClient发送请求,并且在使用exchange((检索响应后,我需要将正文提取为Object_1的Mono。该函数需要返回 Mono>。通常你会使用bodyToMono(SomeObject.class(,但这在这种情况下不起作用。
public Mono<Object1<Object2>> getAll(String someParam) {
return WebClient.create(this.baseUrl)
.get()
.uri(uriBuilder -> uriBuilder.path("/some_path")
.queryParam("someParam", someParam)
.build())
.exchange()
.flatMap(clientResponse -> clientResponse.bodyToMono(????));
}
我正在试图弄清楚在身体里放什么ToMono((
我相信
你可以通过bodyToMono
的过载来做到这一点,这需要ParameterizedTypeReference
.
ParameterizedTypeReference<Object1<Object2>> typeRef =
new ParameterizedTypeReference<Object1<Object2>>() {};
// . . .
.flatMap(clientResponse -> clientResponse.bodyToMono(typeRef));
如果你愿意,你可以用内联方式编写它,并且不觉得它太难阅读:
.flatMap(clientResponse -> clientResponse.bodyToMono(
new ParameterizedTypeReference<Object1<Object2>>() {}));