除非明确说明,否则规则squid:128似乎存在以防止在切换情况下出现问题。这似乎是一个合理的规则,因为忘记休息是一个常见的错误。
然而,在需要时,跌倒是完全有效的。
此规则的文档指出实现延期的唯一方法是使用continue
case 4: // Use of continue statement
continue;
我还检查了SwitchCaseWithoutBreakCheck的源代码是否实现真正检查"继续"声明
@Override
public void visitContinueStatement(ContinueStatementTree tree) {
super.visitContinueStatement(tree);
markSwitchCasesAsCompliant();
}
但是,Java语言不支持在switch / case中继续。在线文档和./java-checks/src/test/files/checks/SwitchCaseWithoutBreakCheck.java也不是有效的Java程序。
我是否遗漏了某些内容,或者这条规则完全被破坏并阻止使用堕落?
答案 0 :(得分:2)
你完全正确地说这里的描述是错误的,如果你想实际使用fallthrough,你实际上没有办法不触发规则(因此你可能想要将问题标记为误报)大小写或完全取消激活规则)
调用规则"破坏"是一个意见,所以我不会争论;)
尽管如此,已经创建了一张票来处理这个问题:http://jira.sonarsource.com/browse/SONARJAVA-1169