首页 > 解决方案 > spring Webclient泛型结果.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 返回错误

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

标签: springgenericsmonospring-webclient

解决方案


由于 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>>(){
    });;

推荐阅读