本篇内容介绍了“java.util.HashMap$Values cannot be cast to java.ut问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
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他坑定报错。
正确的解决方案
获取redis中的数据就使用Objec类型接收数据
在使用阿里巴巴fastjson将获取到的Object类型对象转换为json格式字符串,方法:JSON.toJSONString(对象)
在将json格式对象转换为你需要的java对象,问题即可迎刃而解。方法:JSON.parseObject(json,要转换的类的字节码)
“java.util.HashMap$Values cannot be cast to java.ut问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!