You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sonarlint squid:S1186警告:STS中空构造方法问题求助

解决SonarLint V3.5.0在STS中误报默认构造方法squid:S1186警告的问题

我完全懂这种反复弹出不必要警告的烦躁!咱们一步步来搞定它:

先确认核心前提

首先你得核实下STS里运行的SonarLint是不是真的是你以为的版本:

  • 打开STS,点击Help > About Eclipse > Installation Details
  • 在Installed Software标签里搜索SonarLint,确认显示的版本号。有时候STS的插件更新可能没完全生效,实际运行的还是旧版本,这就会导致修复的问题还存在。

方法一:调整SonarLint本地规则配置

如果版本确实是3.5.0及以上,那大概率是规则的配置没正确应用修复逻辑:

  1. 打开STS的偏好设置:Window > Preferences > SonarLint > Rules
  2. 在搜索框输入squid:S1186,找到这条“Methods should not be empty”规则
  3. 双击规则进入编辑界面,检查规则的参数配置:
    • 看看有没有类似“忽略默认构造方法”的选项,确保它是勾选状态
    • 如果没有这个选项,或者勾选后还是不行,可以直接在这个界面把规则的级别改成Off,彻底禁用这条规则(当然如果你的项目确实需要检查空方法,这步要谨慎)

方法二:检查项目的SonarQube绑定情况

如果你的项目绑定了远程SonarQube服务器,本地SonarLint会同步服务器上的规则配置,哪怕本地插件版本更新了,服务器上的旧规则还是会生效:

  • 右键项目 > SonarLint > Unbind from SonarQube Server,断开绑定后再试试,看警告是否消失
  • 如果必须绑定服务器,那需要升级远程SonarQube服务器的规则版本,然后重新同步规则到本地(右键项目 > SonarLint > Update Binding)

方法三:临时代码规避方案

如果上面的方法都暂时无法生效,可以先在代码里加注释让SonarLint忽略这条警告:

public class TestClass{ 
    // NOSONAR - 忽略默认构造方法的空方法警告
    public TestClass() {} 
}

另外提醒下:如果你的类里没有其他带参数的构造方法,其实可以直接删掉这个显式的默认构造方法,Java会自动帮你生成,这样也能避免触发警告。

额外排查点

如果以上都没用,试试更新STS到最新版本,或者把SonarLint升级到当前最新版——有时候插件之间的兼容性问题也会导致修复逻辑没正确执行。

内容的提问来源于stack exchange,提问作者MenAmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:58:02