gpt4 book ai didi

Java-17 - 切换案例 - 应删除未使用的方法参数

转载 作者:行者123 更新时间:2023-12-04 12:27:22 32 4
gpt4 key购买 nike

我有一个简单的方法,它接受一个枚举并返回一个字符串:

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 .
如您所见,参数类型在开关中使用。有关更多详细信息,当我使用旧开关盒时,一切都很好。
关于这个问题的任何想法, Sonar 是否涵盖新的 Java 语法?

嗯,我注意到当我删除 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/

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