Java 8 stream fix Intermediate Stream methods should not be left unused sonar 问题
Java 8 stream fix Intermediate Stream methods should not be left unused sonar issue
group.getTeamMemberIds().stream().filter(id -> userMap.containsKey(id)).
map(id -> groupDTO.getTeamMembers().add(userMap.get(id)));
Sonar 将此检测为中间流方法不应闲置主要错误
这里没有终端操作,所以不会执行这个流;因此 "unused" 声纳错误。
您在以下方面也有副作用: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);
您几乎不需要 containsKey
后跟 get
- 您可以避免进行两次哈希查找,方法是执行 get
并查看结果是否不是 null
group.getTeamMemberIds().stream().filter(id -> userMap.containsKey(id)).
map(id -> groupDTO.getTeamMembers().add(userMap.get(id)));
Sonar 将此检测为中间流方法不应闲置主要错误
这里没有终端操作,所以不会执行这个流;因此 "unused" 声纳错误。
您在以下方面也有副作用: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);
您几乎不需要 containsKey
后跟 get
- 您可以避免进行两次哈希查找,方法是执行 get
并查看结果是否不是 null