Java Sonarlint[squid:S1186]:Spring工具套件中构造函数上的方法不应为空

Java Sonarlint[squid:S1186]:Spring工具套件中构造函数上的方法不应为空,java,spring-tool-suite,sonarlint,Java,Spring Tool Suite,Sonarlint,我正在Spring工具套件中使用Sonarint V3.5.0。当代码中有默认构造函数时,我收到squid:S1186警告,如下所示: public class TestClass{ public TestClass() {} } 一直有这样的警告有点烦人。正如我所发现的,SonarSource在3.5版中作为一个bug解决了这个问题,但是最新的Sonarlint仍然给了我这个警告 我如何使用声纳来解决这个问题?谢谢 不能单独使用SonarLint删除规则检查。您可以使用SonarQu

我正在Spring工具套件中使用Sonarint V3.5.0。当代码中有默认构造函数时,我收到squid:S1186警告,如下所示:

public class TestClass{
    public TestClass() {}
}
一直有这样的警告有点烦人。正如我所发现的,SonarSource在3.5版中作为一个bug解决了这个问题,但是最新的Sonarlint仍然给了我这个警告


我如何使用声纳来解决这个问题?谢谢

不能单独使用SonarLint删除规则检查。您可以使用SonarQube服务器忽略违规规则,并将SonarLint连接到SQ服务器,以便按照建议忽略该规则

如OP中所述,SonarSource团队在以下方面存在问题:

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

这个问题是一个好的实践概念——在我们的代码中通常有一个空的作用域,而不仅仅是在构造函数中

在您的例子中,默认构造函数已经被显式实现,这显然是您正在使用的Sprint工具套件所必需的。我们很好地讨论了这种用例

考虑到空范围确实是一个反模式的事实,我建议在构造函数的空范围内添加一条注释,解释由于使用STS而需要显式公共默认构造函数

这样做显然将解决Sonarint提出的问题


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

谢谢您的回答。我将尝试使用SQ服务器来解决这个问题。