alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.
Apache License 2.0
3.79k stars 495 forks source link

[BUG] JSON.parseObject后出现 java.lang.ClassCastException: r2 cannot be cast to com.h.hh.HotBean$HotRep错误 #3093

Closed MurrayDu closed 1 month ago

MurrayDu commented 1 month ago

问题描述 我有一个类结构如下: public class HotBean { public List hotRepList = new ArrayList() public static class HotRep{ public String data; public long id; } } 我做了2件事情 1:将 JSON.toJSONString(hotBean)的数据,写入到文件 2:从文件中读取该数据并且用hotBean = JSON.parseObject(data, HotBean.class),拿到hotBean。 我在android app和system_server的进程中中调用以下代码:(curHotBean.HotRepList是有数据的) for (HotRep req : curHotBean.HotRepList) {

} app中可以正常运行,但是system_server中就会报错 java.lang.ClassCastException: r2 cannot be cast to com.h.hh.HotBean$HotRep。 *

环境信息 请填写以下信息:

OS信息: [oneplus 9,lineageOs] JDK信息: [e.g.:java version "17.0.10" 2024-01-16 LTS] 版本信息:[e.g.:Fastjson2 2.0.52] fastjson1也有这个问题,升级到fastjson2问题还是存在 重现步骤 如何操作可以重现该问题:

使用 xxx.xxx 方法 输入 ... 数据 出现 ... 错误 //可在此输入示例代码 期待的正确结果 可以正常执行以下代码 for (HotRep req : curHotBean.HotRepList)

相关日志输出 10-11 18:50:03.662 1417 5927 E JavaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.) 10-11 18:50:03.662 1417 5927 E JavaBinder: java.lang.ClassCastException: r2 cannot be cast to com.h.hh.HotBean$HotRep 10-11 18:50:03.662 1417 5927 E JavaBinder: at com.h.hh.HotManagerService.switchToEnv(Unknown Source:116) 10-11 18:50:03.662 1417 5927 E JavaBinder: at com.h.hh.IHot$Stub.onTransact(Unknown Source:60) 10-11 18:50:03.662 1417 5927 E JavaBinder: at android.os.Binder.execTransactInternal(Binder.java:1161) 10-11 18:50:03.662 1417 5927 E JavaBinder: at android.os.Binder.execTransact(Binder.java:1130) 10-11 18:50:03.662 8895 8960 E SH_Cloud: SH_Cloud, switchToEnv result=null

附加信息 如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)