k.k*_*lev 4 java spring jackson spring-boot spring-webclient
我有一个 Spring Boot 应用程序,我正在使用 WebClient 向 API 发出请求,该 API 返回以下格式,其中{"results": {...}}字段中的对象results可以采用多种不同的格式。我创建了以下类来存储 API 响应。
@Data
@Jacksonized
@Builder
public class ApiResponse<T> {
private T results;
}
Run Code Online (Sandbox Code Playgroud)
当我调用以下方法时:
public MyResClass makeApiCall(String URI) {
ApiResponse<MyResClass> response = webClient.get()
.uri(URI)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(new ParameterizedTypeReference<ApiResponse<MyResClass>>() {})
.block();
return response.getResults();
}
Run Code Online (Sandbox Code Playgroud)
抛出ajava.lang.ClassCastException并显示以下消息:“java.util.LinkedHashMap 类无法转换为 MyResClass 类”
删除@Builder和@Jacksonized注释并重复测试,没有它们似乎工作正常。
PS 请小心调用block(),如果此代码碰巧在非阻塞线程上执行,则可能会引发各种错误!
| 归档时间: |
|
| 查看次数: |
6336 次 |
| 最近记录: |