解决 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: 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解析不出来。

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


    总结

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

    作者:睡个好觉\"

    物联沃分享整理
    物联沃-IOTWORD物联网 » 解决 java.lang.UnsupportedOperationException: null 异常的方法

    发表回复