天天看點

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他坑定報錯。

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

正确的解決方案

1.擷取redis中的資料就使用Objec類型接收資料

2.在使用阿裡巴巴fastjson将擷取到的Object類型對象轉換為json格式字元串,方法:JSON.toJSONString(對象)

3.在将json格式對象轉換為你需要的java對象,問題即可迎刃而解。方法:JSON.parseObject(json,要轉換的類的位元組碼)

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

如上為解決從redis中擷取資料出現類型轉換異常的解決方案,原理沒有深入研究。