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

时间:2018-04-04 18:45:18

标签: java enums sonarqube sonarlint

使用Java,SonarQube抱怨关于枚举值的switch语句没有default:的情况。

给出的推理是:

  

"最终默认条款的要求是防御性编程。   该条款应采取适当的行动,或包含一个   适当的评论为什么不采取行动。当开关盖住时   枚举的所有当前值 - 特别是当它没有 - a时   仍应使用默认情况,因为无法保证   enum不会被延长。"

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

  • 修改枚举,使交换机不再覆盖每个案例。

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

1 个答案:

答案 0 :(得分:2)

SonarQube允许您add custom rules

假设在不完整的交换机案例覆盖范围内没有现有的枚举相关规则警告,您只需在SQ上添加自己的规则,并在连接到SQ服务器的所有SonarLint实例上强制执行该规则。