Spring WebClient泛型Result <Lead> .class不起作用

问题描述

在spring webclient中,我想在结果中反序列化响应

'''

Mono<Result<Lead>> result = webClient
        .get()
        .uri("/leads?page="+page)
        .header(HttpHeaders.AUTHORIZATION,"Bearer " + tocken)
        .retrieve().bodyToMono(Result<Lead>.class);

''' Result.class返回错误

在这种情况下我可以如何使用泛型?

解决方法

由于Spring不知道泛型类型,因此会将任何未知类型反序列化为LinkedHashMap。因此请使用 ParameterizedTypeReference 将JSON反序列化为Result的确切类型。 ParameterizedTypeReference 捕获通用类型并将其保留在运行时。

Mono<Result<Lead>> result = webClient
    .get()
    .uri("/leads?page="+page)
    .header(HttpHeaders.AUTHORIZATION,"Bearer " + tocken)
   .retrieve().bodyToMono(new ParameterizedTypeReference<Result<Lead>>(){
    });;