当前位置: 首页 > 知识库问答 >
问题:

移除声纳中未使用的方法参数

满勇军
2023-03-14

我遇到了一个声纳问题:

移除这个未使用的方法参数“messageId”。

我的方法看起来像:

private static Optional<Status> getStatus(Member member, String messageId) {
    return Optional.ofNullable(member)
            .map(Member::getTraffic)
            .map(Traffic::getSymlinks)
            .map(messages -> messages
                    .stream()
                    .filter(message -> message.getMessageId().equals(messageId))
                    .findFirst()).flatMap(message -> message.map(Message::getStatus));
}

messageId用于过滤器的等于。这不是字段。它是方法参数。

那是一个< code >声纳错误还是我忽略了什么?我们用的是声纳5.6

共有1个答案

龚沛
2023-03-14

是的,看起来像一个错误.似乎这个问题最近在去年12月发布的SonarJava 5.0(与SonarQube 6.7兼容)中得到了解决。

https://jira.sonarsource.com/browse/SONARJAVA-2115

 类似资料:
  • 我使用Sonarqube5.1,并对“Sonar Way”Java质量配置文件进行了实验。工作很简单:我想为缺少的媒体类型定义一个全局字符串常量: 然而,Sonarqube告诉我,在规则squid中这是一个不好的做法:S1214-不应该在接口中定义常数。长长的文本谈到了实现这个接口,我并没有打算,但我让步了,而是创建了一个类: 然而,这被认为是规则Squid中的一个主要设计问题:S1118-实用程

  • 问题内容: 此代码示例 违反了声纳法规则: 尽可能用方法引用替换lambda 是声纳虫吗?还是我真的可以使用方法参考? 问题答案: 您不能在不更改语义的情况下用方法引用替换lambda 。 方法引用替换 单个 方法调用,因此它不能简单地替换包含多个方法调用的lambda表达式。 形式的lambda表达式可以被替换为,当且仅当的评估时间无关紧要,因为在lambda形式中,在每个lambda主体评估中

  • 我有以下一段代码在我的程序,我正在运行SonarQube 5的代码质量检查后,它与Maven集成。 然而,声纳要求将封闭方法设置为“静态”或移除这一组。方法是setApplicationContext。 如何删除此错误?为什么会出现这种错误?

  • 示例代码: SonarQube将bar()函数标记为未使用,但SonarLint(IntelliJ,2.7.1.1640)工作正常。我已经安装了最新版本的SonarQube(6.2)和最新版本的Java插件(4.5.0.8398),但仍然有这个问题--我以为这个问题已经解决了?这是某种回归bug吗?谢谢你的帮助。 更新: 上面的例子太琐碎了,我设法指定了问题:它看起来像是一个传递给函数的原始参数的

  • 创建EventHandler方法时,如何修复Sonarint规则S1172“应删除未使用的方法参数”。 您可以使用反应式扩展重写代码,并创建“可观察的”,但对于简单的事件处理程序来说,这是一个相当复杂的解决方案。另一种选择是重写代码,如下所示: 但接下来的问题是如何执行?在我看来,未使用的参数不适用于事件处理程序方法。但在声纳探测中可能很难做到这一点。