java.lang.UnsupportedOperationException: null 其一解决办法

文章目录

  • 前言
  • 一、错误回顾
    • 1.详细信息
    • 2.代码详情
  • 二、解决方案
    • 1.错误原因
    • 2.解决方案
      • 1.使用 new ObjectMapper() + new TypeReference<List>(){}
      • 2.使用 SerializerFeature.WriteMapNullValue.getMask()
  • 总结


前言

当我们远程调用传递泛型集合,如 List<?> 时,在我们使用 JSON 将字符串转为 List 时,即:JSON.parseArray(“字符串”).toJavaList(Clazz); 有时会报:java.lang.UnsupportedOperationException: null 错误。


提示:以下是本篇文章正文内容,下面案例可供参考

一、错误回顾

1.详细信息

java.lang.UnsupportedOperationException: nullat com.alibaba.fastjson2.reader.ObjectReaderBaseModule$PrimitiveImpl.createInstance(ObjectReaderBaseModule.java:978) ~[fastjson2-2.0.0.jar:na]at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:53) ~[fastjson2-2.0.0.jar:na]at com.alibaba.fastjson2.util.TypeUtils.cast(TypeUtils.java:167) ~[fastjson2-2.0.0.jar:na]at com.alibaba.fastjson2.reader.ObjectReader.createInstance(ObjectReader.java:74) ~[fastjson2-2.0.0.jar:na]at com.alibaba.fastjson.JSONArray.toJavaList(JSONArray.java:207) ~[fastjson-2.0.0.jar:na]at com.sty.topology.web.service.impl.TopologyTreeServiceImpl.olmMonitor(TopologyTreeServiceImpl.java:700) ~[classes/:na]at com.sty.topology.web.service.impl.TopologyTreeServiceImpl$$FastClassBySpringCGLIB$$6ec93c49.invoke(<generated>) ~[classes/:na]

2.代码详情

报错代码显示为:toJavaList(LightPath.class); 错误

List<LightPath> lightPaths = JSON.parseArray(JSON.toJSONString(object)).toJavaList(LightPath.class);

二、解决方案

1.错误原因

主要是我们返回的 list 中,含有 $ref 返回的数据,导致json解析不出来。

在这里插入图片描述

2.解决方案

1.使用 new ObjectMapper() + new TypeReference(){}

List<LightPath> lightPaths = new ObjectMapper().convertValue(object, new TypeReference<List<LightPath>>() {});

2.使用 SerializerFeature.WriteMapNullValue.getMask()

List<LightPath> lightPaths = JSON.parseArray(JSON.toJSONString(object, SerializerFeature.WriteMapNullValue.getMask())).toJavaList(LightPath.class);

JSON.toJSONString(jsonObject),出现 “$ref“ 解决方案


总结

该是你的总归是你的,不是你的也强求不来。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416054.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue的母婴商城系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

社会组织进村,温暖留守老人

2024年1月16日上午&#xff0c;巢湖市黄麓镇小李村迎来了30多位客人。他们是合肥格局商学院73队学员、部分书画家等爱心人士。大家深入村中和留守老人交流&#xff0c;给村民们现场书写春联&#xff0c;帮老人们照相&#xff0c;还带去食材做饭&#xff0c;陪伴老人们共同进餐。…

第11章 GUI Page500~504 步骤三十二:打开画板文件02

各个图元类新增GetTypeName_Static()&#xff0c;并将原来的GetTypeName()改为调用静态方法实现&#xff1a; 直线&#xff1a; 圆&#xff1a; 十字&#xff1a; 矩形&#xff1a; 文字&#xff1a; tool_4_save_load.hpp添加两行 tool_4_save_load.cpp增加&#xff1a; 增加…

原生微信小程AR序实现模型动画播放只播放一次,且停留在最后一秒

1.效果展示 0868d9b9f56517a9a07dfc180cddecb2 2.微信小程序AR是2023年初发布&#xff0c;还有很多问提&#xff08;比如glb模型不能直接播放最后一帧&#xff1b;AR识别不了金属、玻璃材质的模型等…有问题解决了的小伙伴记得告诉我一声&#xff09; 微信官方文档地址 3.代码…

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

YOLOv3:算法与论文详细解读

【yolov1&#xff1a;背景介绍与算法精讲】 【yolo9000&#xff1a;Better, Faster, Stronger的目标检测网络】 目录 一、YOLOv3概述二、创新与改进三、改进细节3.1 多尺度特征3.2 不同尺度先验框3.3 完整的网络结构3.3 Darknet-53主干网络3.4 残差网络3.4.1 恒等映射3.4.2 网络…

软件测试|SQLAlchemy query() 方法查询数据

简介 上一篇文章我们介绍了SQLAlchemy 的安装和基础使用&#xff0c;本文我们来详细介绍一下如何使用SQLAlchemy的query()方法来高效的查询我们的数据。 创建模型 我们可以先创建一个可供我们查询的模型&#xff0c;也可以复用上一篇文章中我们创建的模型&#xff0c;代码如…

根据基因名批量查找它的Uniprot编号

背景&#xff1a; 前几天老师交给我一个任务&#xff0c;给我一个基因列表&#xff0c;让我查找它们所编码的蛋白质的蛋白质序列。我上了一下uniprot数据库&#xff0c;发现这个任务可以分成两步&#xff1a; 找到这个基因在Uniprot数据库中所对应的蛋白质编码根据蛋白质编码…

目标检测难题 | 小目标检测策略汇总

大家好&#xff0c;在计算机视觉中&#xff0c;检测小目标是最有挑战的问题之一&#xff0c;本文给出了一些有效的策略。 从无人机上看到的小目标 为了提高模型在小目标上的性能&#xff0c;本文推荐以下技术&#xff1a; 提高图像采集的分辨率 增加模型的输入分辨率 tile你…

【C语言】ipoib模块 - ipoib_send_rss函数

一、ipoib_send_rss函数定义 int ipoib_send_rss(struct net_device *dev, struct sk_buff *skb,struct ib_ah *address, u32 dqpn) {struct ipoib_dev_priv *priv ipoib_priv(dev);struct ipoib_tx_buf *tx_req;struct ipoib_send_ring *send_ring;u16 queue_index;int hlen…

使用chromium代码函数入参和出参传入同一个变量踩到的坑

背景&#xff1a; 开发一个需求的时候需要用到chromium中的加解密功能&#xff0c;但是发现加密之后解密失败了。 伪代码&#xff1a; std::string text "encryped-text"; bool b Encryptor::Crypt(false, text, &text); 发现b的值为false。 备注&#x…

[ELK] ELK企业级日志分析系统

一、ELK 概述 1.1 ELK 简介与组件 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ●ElasticSearch&#xff1a;是基于Lucene&#xff08;一个…