使用 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(使用前将#替换为@)