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

文章目录

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


前言

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


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

一、错误回顾

1.详细信息

java.lang.UnsupportedOperationException: null
	at 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解析不出来。

java.lang.UnsupportedOperationException: null 其一解决办法_第1张图片

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“ 解决方案


总结

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

java.lang.UnsupportedOperationException: null 其一解决办法_第2张图片

你可能感兴趣的:(错误实例,java,开发语言)