作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的方法,它接受一个枚举并返回一个字符串:
public static String enumToString(MyEnum type) {
return switch (type) {
case Enum1 -> "String_1";
case Enum2 -> "String_2";
case Enum3 -> "String_3";
case Enum4 -> "String_4";
case Enum5 -> "String_5";
case Enum6 -> "String_6";
default -> null;
};
}
但是 Sonar 给了我这个主要错误:
Unused method parameters should be removed .
default -> null;
时 Sonar 正确通过!这很奇怪。
public static String enumToString(MyEnum type) {
return switch (type) {
case Enum1 -> "String_1";
case Enum2 -> "String_2";
case Enum3 -> "String_3";
case Enum4 -> "String_4";
case Enum5 -> "String_5";
case Enum6 -> "String_6";
//default -> null;
};
}
最佳答案
这不是错误,Sonar 会正确评估如果列表是详尽无遗的 switch-expression永远不能掉进default
分支。
另一方面,如果您决定不列出所有可能的枚举常量,default
但是,必须声明分支。否则,代码将无法编译,因为要求每个枚举常量都可以匹配。
注意:您的代码包含 switch 表达式,而不是 switch 语句。
关于Java-17 - 切换案例 - 应删除未使用的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69631357/
我是一名优秀的程序员,十分优秀!