Sam*_*ams -1 java java-8 java-stream sonarqube
group.getTeamMemberIds().stream().filter(id -> userMap.containsKey(id)).
map(id -> groupDTO.getTeamMembers().add(userMap.get(id)));
Run Code Online (Sandbox Code Playgroud)
Sonar检测到这一点,因为中间流方法不应该被闲置主要bug
这里没有终端操作,因此不会执行该流; 因此声纳"未使用"的错误.
您还有副作用: id -> groupDTO.getTeamMembers().add(userMap.get(id)
有更好的方法来解决这个问题:
List<String> teamMembers = group.getTeamMemberIds() // I assume String here...
.stream()
.map(userMap::get)
.filter(Objects::notNull)
.collect(Collectors.toList());
groupDTO.getTeamMembers().addAll(teamMembers);
Run Code Online (Sandbox Code Playgroud)
你几乎从不需要containsKey跟随get- 你可以避免做两个哈希查找,通过做一个get,看看结果是不是null
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |