【问题标题】:Refactor the code so this stream pipeline is used重构代码,以便使用此流管道
【发布时间】:2021-01-29 21:20:58
【问题描述】:

通过重构代码在 SonarQube 中获取错误,以便在以下代码片段中使用此流管道。

Stream<ContextData> stream = Globals.contextMap.values().stream()
.sorted(Comparator.comparing(ContextData::getName));

我们如何解决这个问题?

sonarQube 提供的评论是, 中间流方法不应该被闲置。

但是在这行之后我还有其他一些关于这个流的用途,

String contextName = parameterParser.getTagsWithValue().get(FilterParameter.CONTEXT_NAME);
if (contextName != null) {
    stream = stream.filter(entity -> entity.getName() !=null && entity.getName().equalsIgnoreCase(contextName));
}

【问题讨论】:

  • 你没有调用任何终端操作。所以流是没用的。

标签: java java-8 sonarqube


【解决方案1】:

你应该关闭流:

例如。我将结果收集到一个列表中

List<ContextData>contextDataList = Globals.contextMap.values().stream()
.sorted(Comparator.comparing(ContextData::getName))
.collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 2020-05-12
    • 2010-10-04
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多