【发布时间】:2021-08-09 01:00:43
【问题描述】:
我正在运行 sonarQube,但它说这些代码行中有重复项。如何在 switch 语句中解决这个问题?我只是在学习 java 中的单元测试是如何工作的,所以任何帮助都会很棒!
switch () {
case "M":
campusLogo = "/watermark_main.png";
break;
case "IN":
campusLogo = "/Watermark_IN.png";
break;
case "WA":
campusLogo = "/Watermark_WA.png";
break;
case "MO":
campusLogo = "/Watermark_MO.png";
break;
case "NC":
campusLogo = "/Watermark_NC.png";
break;
case "NV":
campusLogo = "/Watermark_NV.png";
break;
case "OH":
campusLogo = "/Watermark_OH.png";
break;
case "TN":
campusLogo = "/Watermark_TN.png";
break;
case "TX":
campusLogo = "/Watermark_TX.png";
break;
default:
campusLogo = "/watermark_main.png";
}
【问题讨论】:
-
故意失败(尽管可能想评论它)而不是
breaking每个案例。也就是说,我在这里看不到重复(除了您将字符串分配给变量的事实)。你能发布完整的警告信息吗? -
切换表达式在这里很有用。
campusLogo = switch (...) { ... }; -
你可以省略
case "M",让它默认。 -
为什么不直接使用地图呢?或者只是通过一些小的调整来连接字符串?
-
另外,您所做的只是将案例代码附加到字符串中。还不如没有任何开关/映射,只做
campusLogo = "/Watermark_" + code + ".png"(+ 一些最小的if检查,也许用Set<String> supportedCodes,事先为default)。
标签: java duplicates sonarqube