当前位置: 首页 > news >正文

SpringBooot之RestTemplate接口返回多层泛型导致java.util.LinkedHashMap cannot be cast to异常

统一泛型返回对象

@Data
public class Res<T> implements Serializable {private static final long serialVersionUID = 6558796578827818466L;private Integer code; //状态码private String msg; //返回消息private T data; //数据
}

data里包裹的泛型对象假设是DZPJ

@Data
public class DZPJ implements Serializable {private String billNo;//发票号码
}

postForEntity或postForObject接收参数多层泛型用下面这种方式接收参数会抛出类型转换异常

		Res<DZPJ> res = restTemplateBuilder.build().postForEntity(requestUrl, new HttpEntity<>(dto, headers), Res.class).getBody();//此时这里会抛出java.util.LinkedHashMap cannot be cast to DZPJDZPJ dzpj = res.getData();

正确做法

	Res<DZPJ> res = restTemplateBuilder.build().exchange(requestUrl, HttpMethod.POST, new HttpEntity<>(dto, headers), new ParameterizedTypeReference<Res<DZPJ>>() {}).getBody();//这里就可以正常解析了。DZPJ dzpj = res.getData();
http://www.lryc.cn/news/306848.html

相关文章:

  • 【新三板年报文本分析】第二辑:从pdf链接的列表中批量下载年报文件
  • Jessibuca 插件播放直播流视频
  • 【Docker】03 容器操作
  • 【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章
  • 什么是芯片委外管理系统? 及其主要作用
  • 【实战-08】 flink自定义Map中的变量的行为
  • Docker Volume
  • 开源计算机视觉库OpenCV常用的API介绍
  • pytorch -- torch.nn下的常用损失函数
  • daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具
  • 无法访问云服务器上部署的Docker容器(二)
  • 在Pycharm中运行Django项目如何指定运行的端口
  • Android将 ViewBinding封装到BaseActivity基类中(Java版)
  • JSP实现数据传递与保存(一)
  • 【论文笔记之 YIN】YIN, a fundamental frequency estimator for speech and music
  • 水印相机小程序源码
  • NXP实战笔记(八):S32K3xx基于RTD-SDK在S32DS上配置LCU实现ABZ解码
  • 【深度好文】simhash文本去重流程
  • 主流的开发语言和开发环境介绍
  • List去重有几种方式
  • 使用C#+NPOI进行Excel处理,实现多个Excel文件的求和统计
  • 华清远见嵌入式学习——驱动开发——day9
  • formality:set_constant应用
  • sqllabs的order by注入
  • 《The Art of InnoDB》第二部分|第4章:深入结构-磁盘结构-redo log
  • 大模型安全相关论文
  • 回归预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测
  • [算法沉淀记录] 排序算法 —— 堆排序
  • C++ //练习 9.33 在本节最后一个例子中,如果不将insert的结果赋予begin,将会发生什么?编写程序,去掉此赋值语句,验证你的答案。
  • [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape