gpt4 book ai didi

java - Sonarlint [鱿鱼 :S1186]: Method should not be empty on constructor in Spring Tool Suite

转载 作者:行者123 更新时间:2023-12-02 11:14:57 27 4
gpt4 key购买 nike

我在 Spring Tool Suite 中使用 Sonarlint V3.5.0。当我在代码中有默认构造函数时,我收到 squid:S1186 警告,如下所示:

public class TestClass{
public TestClass() {}
}

总是出现这个警告有点烦人。据我发现,SonarSource 已将其作为 3.5 版本中的错误解决,但最新的 Sonarlint 仍然给我这个警告。

如何使用 Sonarlint 解决这个问题?谢谢。

最佳答案

您无法单独使用 SonarLint 删除规则检查。您可以使用 SonarQube 服务器忽略违规规则,并将 SonarLint 连接到 SQ 服务器以忽略该规则,如建议的 here 所示。 .

如 OP 中所述,SonarSource 团队遇到 the use-case described in the question 问题.

在考虑忽略该规则之前,请考虑以下事项:

squid:S1186问题是一个很好的实践概念 - 在我们的代码中通常有一个空范围,而不仅仅是在构造函数中,is a code anti-pattern .

在您的例子中,默认构造函数已被显式实现,这显然是您正在使用的 Sprint 工具套件所必需的(此类用例已被很好地讨论 here )。

考虑到空作用域确实是一种反模式,我建议在构造函数的空作用域内添加注释,解释由于使用 STS,需要显式公共(public)默认构造函数。

这样做显然可以解决 SonarLint 提出的问题。

如果您有许多自动生成的空默认构造函数的实例 - 您应该能够使用 IDE 查找/替换解决方案与正则表达式,以便将空范围替换为包含解释原因的注释的范围。

关于java - Sonarlint [鱿鱼 :S1186]: Method should not be empty on constructor in Spring Tool Suite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50351189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com