有没有办法让 SonarQube 只警告不完整的 Switch 语句?

2024-05-22

使用 Java,SonarQube 抱怨枚举值上的 switch 语句没有default: case.

给出的推理是:

“最终默认条款的要求是防御性编程。 该条款应采取适当的行动,或包含 关于为什么不采取行动的适当评论。当开关盖上时 枚举的所有当前值 - 尤其是当它不存在时 - 仍应使用默认情况,因为不能保证 枚举不会被扩展。”

我不同意上述陈述 - 我希望以下行为生成警告:

  • 修改枚举,使开关不再涵盖所有情况。

通过要求默认情况 - 如果枚举发生更改,我们将不会收到警告,并且开关将不再处理所有情况。


SonarQube 允许您添加自定义规则 https://docs.sonarqube.org/display/PLUG/Writing+Custom+Java+Rules+101.

假设不存在关于不完整的 switch case 覆盖的现有枚举相关规则警告,您可以简单地在 SQ 上添加您自己的规则,并在连接到您的 SQ 服务器的所有 SonarLint 实例上强制执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法让 SonarQube 只警告不完整的 Switch 语句? 的相关文章

随机推荐