返回顶部
首页 > 资讯 > 后端开发 > Python >解决java.util.HashMap$Values cannot be cast to java.ut的问题
  • 867
分享到

解决java.util.HashMap$Values cannot be cast to java.ut的问题

Python 官方文档:入门教程 => 点击学习

摘要

目录java.util.HashMap$Values cannot be cast to java.util.List想获取map的值集合,将之转换为Listjava.util.Li

java.util.HashMap$Values cannot be cast to java.util.List

想获取map的值集合,将之转换为List

1.HashMap<String, Map> map1 = new HashMap<>();

获取值集合:map1.values()

默认返回值是 Collection

想把它转换为List,直接用了强转 List values = (List) map1.values();

然后幸运的就报错了。尴尬。

2.Collection转list两种方法

ArrayList的构造器:

ArrayList<Map> results = new ArrayList<>(map1.values());

先转数组在转List

List<T> list=(List<T>) Arrays.asList(map1.values().toArray());

java.util.LinkedHashMap cannot be cast to java.lang.String

日常我们在使用RedisTemplate对象操作redis数据的可能会出现java.util.LinkedHashMap cannot be cast to java.lang.String的异常,说的是无法将java.util.LinkedHashMap强制转换为java.lang.String

问题

在获取到redis中数据的时候不要强制转换为某一个java对象,例如下面我获取数据的时候强制转换为了String类型,这种操作当然会报错。

就好比把一个不确定的类型强制转换为String他坑定报错。

正确的解决方案

1.获取redis中的数据就使用Objec类型接收数据

2.在使用阿里巴巴fastJSON将获取到的Object类型对象转换为json格式字符串,方法:JSON.toJSONString(对象)

3.在将json格式对象转换为你需要的java对象,问题即可迎刃而解。方法:JSON.parseObject(json,要转换的类的字节码)

如上为解决从redis中获取数据出现类型转换异常的解决方案,原理没有深入研究。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 解决java.util.HashMap$Values cannot be cast to java.ut的问题

本文链接: https://lsjlt.com/news/200794.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作