当传入的pageSize为1时程序返回正常,当pageSize大于1时报空指针异常,如何解决?

求解答! 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);

img

你注释掉的代码使用的是 categoryService.getById(article.getCategoryId()) ,你lamda表达式里面用的是 categoryService.getById(article.getId());
你先看下是不是这里的问题

问题很明显了,看下代码两块:
1、articleList 看下里面的属性中是否有null值,需要判空
2、看下categoryService.getById(article.getId())是否会返回null值,需要判空。
若有帮助,记得采纳。