天天看點

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to ***

遇到一個bug,記錄一下

這個bug在發生在微服務之間的調用,采用JWT Token機制,從認證服務中調用解析token的接口擷取存儲于token中的一些使用者資料,然後一直給我報 **java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to **這個錯誤,很疑惑,因為我自己的代碼裡面沒有用到LinkedHashMap,但是解析出來的使用者資料卻無法轉化成實體類

解決方法: 先将map.get(String key) 轉成JSON對象,再由JSON對象轉化為實體類

<dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
           

轉化:

JSONObject jsonObject= JSONObject.fromObject(map.get(Constant.USERDATA));
 CmsAccountLoginVO per = (CmsAccountLoginVO)JSONObject.toBean(jsonObject, CmsAccountLoginVO.class);
           

繼續閱讀