多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....

2023-10-30

问题描述

今天在使用RestTemplate调用服务的时候,因为服务提供者返回的是一个List集合,所以在使用消费者调用的时候,restTemplate.getForObject()期待返回的类型直接写成了List.class

相关代码如下

 public List<DocInfoRela> getFilePath() {
        String url = serviceUrl + "/common/getFilePath";
        List<DocInfoRela> docInfoRelas = restTemplate.getForObject(url, List.class);
        return docInfoRelas;
    }

生产者代码
在这里插入图片描述
消费者代码

在这里插入图片描述

但是接收到List之后,在便利的时候却报错了,报错内容如下:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to cn.chinatowercom.postaccounting.entity.DocInfoRela

ERROR 2022-11-17 15:09:32 [dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to cn.chinatowercom.postaccounting.entity.DocInfoRela] with root cause

相关代码和如图截图:
在这里插入图片描述

解决问题

方式1

我个人比较喜欢这种方案

定义返回List
在这里插入图片描述

    public  List<DocInfoRela> getFilePath() {
        String url = serviceUrl + "/common/getFilePath";
        List<DocInfoRela> docInfoRelas = restTemplate.getForObject(url, List.class);
        return docInfoRelas;
    }

然后将list再次转为json串,然后由json串再转为list
在这里插入图片描述
代码如下

 		// 从数据库获取到数据
            List<DocInfoRela> DocInfoRelasList = this.getFilePath();
            // 将list再次转为json串,然后由json串再转为list
            String docInfoRelaStrings = JSON.toJSONString(DocInfoRelasList);
            DocInfoRelasList = JSON.parseArray(docInfoRelaStrings, DocInfoRela.class);

方式2

返回结果以String类型接受,也即接受的是一个json字符串
在这里插入图片描述
代码如下

 public String getFilePath() {
        String url = serviceUrl + "/common/getFilePath";
        String docInfoRelas = restTemplate.getForObject(url, String.class);
        return docInfoRelas;
    }

然后再使用阿里巴巴的fastjson将json字符串转变成list集合
在这里插入图片描述
代码如下

			 // 从数据库获取到文件路径
            String jsonString = this.getFilePath();
            // 将json字符串转集合
            List<DocInfoRela> docInfoRelas = JSON.parseArray(jsonString, DocInfoRela.class);

方式3

备注:这个我没有试过,在网上找到的一种方案

首先导入net.sf.json 类

    <dependency>
       <groupId>net.sf.json-lib</groupId>
       <artifactId>json-lib</artifactId>
       <version>2.3</version>
       <classifier>jdk15</classifier>
     </dependency>

然后 使用JSONObject中的方法, 先将数据转成json字符串, 在转成实体对象即可。

JSONObject jsonObject=JSONObject.fromObject(objectStr); // 将数据转成json字符串
Person per = (DocInfoRela)JSONObject.toBean(jsonObject, DocInfoRela.class); //将json转成需要的对象

总结

以上就是遇到java.util.LinkedHashMap cannot be cast to…的几种解决思路,我个人喜欢第一种,如有什么问题,欢迎讨论留言

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to..... 的相关文章

  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 如何在Python中将提取的文本从PDF转换为JSON或XML格式?

    我正在使用 PyPDF2 从 PDF 文件中提取数据 然后转换为文本格式 该文件的 PDF 格式如下 Name John Address 123street USA Phone No 123456 Gender Male Name Jim
  • WebApi 自定义 JsonConverter 未调用

    我为 Guid 实现了一个自定义 JsonConverter 如果我在像这样序列化的类的属性 Guid 类型 上声明它 JsonConverter typeof JsonGuidConverter 然后它被调用并且工作正常 但是 我想 自动
  • Spring数据中的本机查询连接

    我有课 Entity public class User Id Long id String name ManyToMany List
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 何时在 hibernate 中使用 DiscriminatorValue 注解

    在 hibernate 中使用 DiscriminatorValue 注释的最佳场景是什么以及何时 这两个链接最能帮助我理解继承概念 http docs oracle com javaee 6 tutorial doc bnbqn html
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级
  • 如何使用通配符模拟泛型方法的行为

    我正在使用 EasyMock 3 2 我想基于 Spring Security 为我的部分安全系统编写一个测试 我想嘲笑Authentication http docs spring io autorepo docs spring secu

随机推荐

  • 树莓派4B安装Tensorflow(Python3.5和3.7下分别进行安装)

    前言 虽然树莓派的速度不如PC 但是它功耗小 价格便宜 很多同学都用来学习机器学习的相关课程 而且tensorflow官方是支持树莓派 我们可以直接在树莓派上进行学习 网上的现在树莓派已经发布4B 新版本的rasbian系统全面采用了pyt
  • Raspberry Pi和Python-OpenCV-TensorFlow卷积神经网络热成像人物检测

    构建逻辑 定期从红外摄像机捕获快照 对其进行标准化 并将其存储在某处 标记图片 检测到人物存在 检测到人物不存在 并在其上训练模型 在树莓派上部署模型并运行定期针对新捕获的图像进行检测 房间里的人是否存在 物料清单 通讯选择 系统准备 捕捉
  • 永兴的tensorflow笔记-6 激活函数

    一 基本神经元 神经元模型 用数学公式表示为 f 为激活函数 w为权重 b为偏置 人工神经网络是由神经元构成的 二 什么是激活函数 将线性函数转变为非线性函数 负责将神经元的输入映射到输出端 激活函数 Activation function
  • bootstrap-table遇到的问题

    1 controller层 queryParams 参数提交不过去 是因为 bootstrap table js中默认是contentType application json 我们必须改成 contentType application
  • IOC和注解

    想要学好spring 必须时时刻刻想着 spring的本质就是一个容器 放java对象的容器 java对象在spring容器中也叫做bean对象 文章目录 一 spring介绍 1 什么是框架 2 框架的作用 在这里插入图片描述 https
  • 行业合规标准MISRA如何帮助C/C++代码程序员高效地编写代码?

    MISRA标准包含编写软件的准则和代码规则 汽车 航空航天和国防 医疗 工业自动化和铁路等行业都使用该标准来帮助他们的开发人员编写源代码 以确保软件的安全 安保和可靠性 由于嵌入式软件工程师使用C和C 编程语言来编写安全关键型软件的代码 M
  • FPGA原理与结构——FIFO IP核的使用与测试

    一 前言 本文介绍FIFO Generator v13 2 IP核的具体使用与例化 在学习一个IP核的使用之前 首先需要对于IP核的具体参数和原理有一个基本的了解 具体可以参考 FPGA原理与结构 FIFO IP核原理学习https blo
  • 静态路由详解

    静态路由 是一种路由的方式 路由项 routing entry 由手动配置 而非动态决定 与动态路由不同 静态路由是固定的 不会改变 即使网络状况已经改变或是重新被组态 一般来说 静态路由是由网络管理员逐项加入路由表 优点 使用静态路由的另
  • 二叉树的五种遍历方式

    目录 1 前序遍历 1 递归实现前序遍历 2 非递归实现前序遍历 2 中序遍历 1 递归实现中序遍历 2 非递归实现中序遍历 3 后序遍历 1 递归实现后序遍历 2 非递归实现后序遍历 4 层序遍历 5 之字形遍历 二叉树是一种重要的数据结
  • conda冗余package的清理(.conda/pkgs)

    今天跑一个论文的代码 结果环境给我报错 说我numpy的版本太高 我删掉重新pip install 结果又出其他问题 问了学长 学长说是把tensorflow和pytorch放一起了 冲突 又是一个血的教训 只好重新配环境 结果一看自己的p
  • 一天走七万步是什么体验?

    嗨大家好 我是南瓜的好朋友西瓜 最近是迷恋上运动的 每天跑不够5w步不带停的那种 为什么这么说呢 jio要跑断的西瓜每天7万步是什么体验呢 当然是沉浸在运动的欢畅中空调的庇护下 说正经的 大家好 今天带给大家的是一键称霸微信运动排行榜的超级
  • f452虚拟服务器,F460 F452 获取超级密码 解决 LOID 注册断线 保留telnet 无需ttl 不用拔光纤...

    有台F460需要改成拨号 找资料参考了以下两篇 http www hackblog cn post 80 html 还是遇到问题获取不到超级密码 第一个是一注册LOID就掉线 第二个是系统是默认只读无法写到httpd目录里 想着断线会不会是
  • 组播基础实验,基于ENSP

    实验拓扑 实验步骤 安装VLS 一个媒体播放器 在进行ENSP的组播实验中 扮演组播源播放视频 组成员接受视频的作用 在做组播实验之前 需要完成单播的基础建设 IGP需要先部署好 保证接受者和源是可达的 在最后一跳路由器上和组成员之间运行I
  • 统计从键盘输入一行字符的个数.c

    统计从键盘输入一行字符的个数 一个字符代表一个 一个汉字代表两个 思想 当输入的字符不等于键盘上的enter键时 每输入一个字符就加1 include
  • Java基础 :HashSet(使用方法详解)

    Java HashSet HashSet 基于 HashMap 来实现的 是一个不允许有重复元素的集合 HashSet 允许有 null 值 HashSet 是无序的 即不会记录插入的顺序 HashSet 不是线程安全的 如果多个线程尝试同
  • ORA-01795: 列表中的最大表达式数为1000的解决方法

    ORA 01795 列表中的最大表达式数为1000的解决方法 IN中的数据量不能超过1000条 解决方案 把条件分成多个少于1000的IN即 DELETE FROM T MM SECTION SITE UPDATE WHERE T T MM
  • python绘图点样式

    plt plot x y x markersize 3 linestyle color darkgreen
  • unity体感游戏--接钻石游戏(三)游戏物体碰撞得分

    u3d的碰撞函数是OnTriggerEnter 代码如下 using UnityEngine using System Collections public class onCollider MonoBehaviour public Gam
  • 阿里云ECS服务器使用教程 新手上云好助手

    随着普及率越来越高 云服务器已经成为企业及个人用户开展网络业务的首选了 阿里云服务器在国内起步早 现在的用户数量是国内第一 全球五强 因为初次接触云服务 所以阿里云服务器的使用方法 对于很多新手小白还不太了解 下面老魏就讲解阿里云服务器的简
  • 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....

    问题描述 今天在使用RestTemplate调用服务的时候 因为服务提供者返回的是一个List集合 所以在使用消费者调用的时候 restTemplate getForObject 期待返回的类型直接写成了List class 相关代码如下