Redis反序列化错误Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`

2024-07-29 18:42:22 浏览数 (2)

Redis反序列化错误Could not read JSON: Cannot construct instance of java.util.ArrayList$SubList

解决思路

Cannot construct instance of ??不能构造的实例?,又看了变实体也提供了对应的构造函数了呀,那只能是从序列化方面入手了, 序列化错误一般有两个因素导致,

  • 1 是没有实现序列化接口 implements Serializable ,
  • 2是没有关键标记常量

private static final long serialVersionUID = -3911255650485738676L;

我看这两个都没问题啊,那可能是我业务中用了一个 list.subList 的截取列表,然后又set回redis导致的了。看看.sublist()源码,果然没有实现Serializable 可序列化接口,附上源码

解决方案:

既然问题找到啦,是没有序列化导致的,那咱们就序列化一个就是呗。new ArrayList()

代码语言:javascript复制
   list = new ArrayList<EmailInfo>(list.subList(1, list.size()));

0 人点赞