【发布时间】:2021-12-06 09:52:09
【问题描述】:
我有一个简单的方法,它接受一个枚举并返回一个字符串:
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。
如您所见,参数类型在开关中使用。有关更多详细信息,当我使用旧开关盒时,一切正常。
关于这个问题的任何想法,声纳是否涵盖新的 Java 语法?
嗯,我注意到当我正确删除 default -> null; 声纳通道时!这很奇怪。
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;
};
}
【问题讨论】:
-
@JohannesKuhn 不管怎样,如果
type是null是不可能的——但后来我记得这个开关会导致NPE 被抛出。 -
为了未来读者的利益,您应该在此处提及所使用的 Sonar 版本。同意,报告的错误看起来不合适。
标签: java sonarqube java-17 switch-expression