【发布时间】:2022-06-14 12:16:20
【问题描述】:
我有以下代码:
String fullName = "";
switch(name) {
case "name1":
fullName = String.format("%s %s", name, "surname1");
break;
case "name2":
fullName = String.format("%s %s", name, "surname2");
break;
case "name3":
fullName = String.format("%s %s", name, "surname3");
break;
...
}
(case后面有个break语句,我这里没写)
那么问题来了:
除了String.format() 的参数外,共有 16 种不同的 case 语句具有完全相同的代码。
有什么办法可以简化这段代码?
注意:Java 8 是必须的
【问题讨论】:
-
使用
Map<String, String>来查找格式字符串? (不幸的是,很难判断这是否仅适用于伪代码。我们不需要查看 实际 业务代码,但您应该能够想出一个 minimal reproducible example 来演示问题。) -
你的意思是
作为键和 arg 格式化为值? -
@justanotherguy 你需要展示你的格式化字符串和参数是什么样子的。
-
用你的具体例子,你可以有一个
Map<String, String>,其中的键是“name1”->“surname1”、“name2”->“surname2”和“name3”->“surname3 ”。但是差异真的只是常数吗? -
@justanotherguy:这并不能真正告诉我它是否适合出现在地图中......听起来你所展示的仍然不是实际上代表你需要什么。
标签: java java-8 switch-statement