首先套用别人一句话-并不是所有的 java.io.NotSerializableException异常都是自己代码的问题,也可能是我们常用的JDK
1.一个String型的集合: List<String> strList = new ArrayList();
2.定义一个新集合,用于存放截取后的集合:List<String> subList = new ArrayList<>();
BUG来了!!!!!!!!!!!
3.会报java.io.NotSerializableException异常的语句:
截取后赋值:subList = strList.subList(0, 3);
服务调用语句,此语句会抛出java.io.NotSerializableException异常:facade.queryList(subList);
4.正确的截取后赋值:subList.addAll(strList.subList(0, 3));
原因:
List.subList()返回的是一个RandomAccessSubList实例,该类型没有实现序列化,解决RandomAccessSubList未序列化的方法是重新放入ArrayList中
说明:我用的是JDK 1.8