`

java.io.NotSerializableException: java.util.ArrayList$SubList

阅读更多
错误信息:


原代码:
			if (null != dtoErrorDataSqlResult) {
				if (list.size() > 40) {
					dtoErrorDataSqlResult.setDatas(list.subList(20, 40));
				} else {
					dtoErrorDataSqlResult.setDatas(list);
				}

				addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
			}


修改后的代码:
			if (null != dtoErrorDataSqlResult) {
				if (list.size() > 40) {
					List<Map<String, String>> tmp = new ArrayList<>(list.subList(20, 40));
					dtoErrorDataSqlResult.setDatas(tmp);
				} else {
					dtoErrorDataSqlResult.setDatas(list);
				}

				addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
			}


看源码注释得知错误原因是:List.subList方法返回的只是一个视图,而ehcache写入磁盘需要的是实体,所以出现此问题!
  • 大小: 117.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics