You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

反序列化不可变List时出现ClassCastException问题求助

反序列化ClassCastException问题:CollSer无法转换为List

问题核心

  • 反序列化对象时抛出java.lang.ClassCastException:java.util.CollSer实例无法赋值给a.b.c.SubClass中a.b.c.BaseClass.aField的java.util.List类型字段
  • 序列化阶段,该字段的List是通过List.copyOf(originalList)生成的不可变列表
  • 临时修复方案是直接返回originalList替代List.copyOf,但这会导致列表可能被多个BaseClass实例共享,存在并发修改或意外篡改风险
  • 调试确认:异常发生时CollSer未通过readResolve机制替换为List实例,问题根源指向java.util.ImmutableCollections$List12的序列化实现

环境与已知关联

  • 涉及环境:OpenJDK 17、OpenJDK 20
  • 该问题已在Java Bug数据库中登记(Bug ID: 8304814),属于JDK本身的序列化逻辑缺陷

内容的提问来源于stack exchange,提问作者cquezel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:54:53