java - 将部分代码重构为 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 表达式吗?
解决方案
您似乎正在寻找removeIf
:
userRepo.getContent().forEach(usersList ->
usersList.getAuthority()
.removeIf(authority ->
!authority.equals(AuthoritiesConstants.ADMIN) && !authority.equals(AuthoritiesConstants.USER)));
推荐阅读
- ios - 'range(of:in:for:)' 不可用:改用 range(of:in:for:)
- javascript - 优化 JavaScript 国家/地区选择器的地图使用
- python - “sudo pip install chaco”失败并出现错误
- angular - 加载项打开时第二次使用 Angular 5 随机错误“Office.js 未完全加载”的 Outlook Web 加载项
- javascript - 在脚本标签中使用 Auth 功能(Laravel)
- ios - what is the best way to create a separate swift file to handle functions i need to use throughout my application
- properties - 注意:未定义的属性:stdClass::$images in
- javascript - 在互联网连接不稳定的客户端中保存表单数据
- google-drive-api - DriveApp.remove(文件夹) 使用 REST API?
- c - 使用 TextureLock SDL2 在纹理中复制曲面