我有一个spring启动应用程序,我使用webclient向api发出请求,该api返回以下格式 {"results": {...}}
物体在哪里 results
字段可以有多种不同的格式。我创建了以下类来存储api响应。
@Data
@Jacksonized
@Builder
public class ApiResponse<T> {
private T results;
}
当我调用以下方法时:
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();
}
一 java.lang.ClassCastException
与消息一起抛出:“class java.util.linkedhashmap cannot be cast to class myresclass”
1条答案
按热度按时间qmelpv7a1#
删除
@Builder
以及@Jacksonized
注解和重复测试,似乎没有它们就可以正常工作。p、 注意安全
block()
调用时,如果此代码恰好在非阻塞线程上执行,则可能引发各种错误!