求解答! stream流中forEach报空指针异常的可能原因
如下代码,当传入的pageSize为1时程序返回正常,当pageSize大于1时报空指针异常。已知用普通的For循环,就是注释掉的部分代码程序一直正常
Page
page = new Page<>(pageNum,pageSize);
super.page(page);
//查询分类名称
List
articleList = page.getRecords();
//根据目录id查询name并设置
// for(Article article:articleList){
// article.setCategoryName(categoryService.getById(article.getCategoryId()).getName());
// }
articleList
.forEach(article -> article.setCategoryName(categoryService.getById(article.getId()).getName()));
//封装查询结果为vo
List articleListVos = BeanCopyUtils.copyBeanList(articleList, ArticleListVo.class);

你注释掉的代码使用的是 categoryService.getById(article.getCategoryId()) ,你lamda表达式里面用的是 categoryService.getById(article.getId());
你先看下是不是这里的问题
问题很明显了,看下代码两块:
1、articleList 看下里面的属性中是否有null值,需要判空
2、看下categoryService.getById(article.getId())是否会返回null值,需要判空。
若有帮助,记得采纳。