ArrayIndexOutOfBoundsException离奇的异常
需求较为简单,将遍历sql返回的List<Object[]>结果集,将id加到另外的List< Integer>集合里,这是原先想要使用流方法实现,具体代码如下:
deptIdList = childOrganization.stream().map(x->(Integer)x[0]).collect(Collectors.toList());
发现添加完这句之后,整个项目就崩了,报了ArrayIndexOutOfBoundsException这个异常,换成如下又能正常启动了:
for (Object[] o : childOrganization) {
deptIdList.add((Integer)o[0]);
}
找了很久,发现一篇文章写到Spring 3的JDK8兼容性问题,才去pom.xml文件找,发现项目比较老,使用的是Spring 3的版本,不完全兼容JDK8。流使用了lambda表达式,所以导致了这个问题。
注:单纯搜索ArrayIndexOutOfBoundsException这个问题比较难搜索相关答案,因此可搜索
spring 3 java 8 ArrayIndexOutOfBoundsException
即可搜索到相关答案