首页 > 解决方案 > 将部分代码重构为 lambda 表达式

问题描述

我有这个代码:

    for (UserDTO usersList:userRepo.getContent()) {
        Set<String> str2 = new HashSet<>();
        for (String authority:usersList.getAuthorities()) {
            if(!authority.equals(AuthoritiesConstants.ADMIN) && !authority.equals(AuthoritiesConstants.USER)){
                str2.add(authority);
            }
        }
        usersList.getAuthorities().removeAll(str2);
    }

可以将其简化为 lambda 表达式吗?

标签: javalambdarefactoring

解决方案


您似乎正在寻找removeIf

userRepo.getContent().forEach(usersList -> 
        usersList.getAuthority()
                .removeIf(authority -> 
                        !authority.equals(AuthoritiesConstants.ADMIN) && !authority.equals(AuthoritiesConstants.USER)));

推荐阅读