gpt4 book ai didi

java - 如何使用 SonarQube 深入分析 Java 切换枚举

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:34 27 4
gpt4 key购买 nike

对我来说,下面的 Java 代码是完全有效的,风格很好:

enum Side { LEFT, RIGHT };
...
Side side = ...;
switch (side) {
case LEFT:
// do something
break;
case RIGHT:
// do something
break;
}

对于 SonarQube 的规则 SwitchLastCaseIsDefaultCheck,这还不够好,它需要一个默认情况。现在在这里,默认情况是多余的,因为枚举已被完全覆盖。

对于枚举,我希望看到一个测试,检查枚举是否被完全覆盖,如果没有覆盖则提示并且没有默认情况(Eclipse 可以做到)。两者都应该没问题。事实上,完全覆盖枚举允许稍后在扩展枚举时发出编译时警告,而给出默认情况只会在运行时失败。

可选地,完全覆盖枚举和给出默认情况都可能触发无法访问代码的警告。

最佳答案

我建议始终包含一个引发适当 RuntimeException 的默认情况是一种很好的做法。这样,您就可以防止 future 的开发人员向 enum 添加内容而忘记更新 switch 语句。

关于java - 如何使用 SonarQube 深入分析 Java 切换枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com