问答详情
源自:4-5 Stream操作集合中的数据-下

这种如何能写成一句?

List<Department> menuTree = allDepartment.stream().filter(p -> StringUtils.isBlank(p.getParentId())).collect(Collectors.toList());
menuTree.forEach(nav -> nav.setChildren(getTree(nav.getId(), allDepartment)));


提问者:Ksdl 2019-11-28 21:16

个回答

  • 大牧莫邪
    2019-11-29 10:07:37

    allDepartment.stream().filter(p -> StringUtils.isBlank(p.getParentId())).forEach(nav -> nav.setChildren(getTree(nav.getId(), allDepartment)))


    这样试过没有呢,只要保证最终执行的是终端操作就OK啦。不过代码中还是不建议写过长的语句呢,在跨平台发布的时候容易因为换行符的不同而引起一些不必要的问题,所以老项目一般建议一行不超过80个字符,新项目一般建议一行不超过120个字符,可以参考一下哦