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()));