我正在寻找缩短方法的可能性。
看起来像:
public static Optional<String> which(int i) {
switch (i) {
case 1:
return Optional.of(_strArray[0]);
case 2:
return Optional.of(_strArray[1]);
case 6:
if (bool)
return Optional.of(_strArray[2]);
case 7:
if (!bool)
return Optional.of(_strArray[3]);
case 9:
if (bool)
return Optional.of(_strArray[3]);
case 123:
if (!bool)
return Optional.of(_strArray[4]);
case 154:
if (bool)
return Optional.of(_strArray[4]);
//... and so on (lot's of cases)
default: return Optional.empty();
}
如何缩短方法? Java 8中有可能吗?
一个想法是采用Map<Integer, Optional<String>>
,但没有方法在Java 8中初始化地图。
答案 0 :(得分:0)
您可以使用番石榴ImmutableMap:
Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c");
答案 1 :(得分:0)
这看起来像“商业逻辑” - 真实案例。
使其成为声明性的:作为数据结构/表格数据,甚至可能在XML中定义,以及布尔逻辑。
然后“解释”数据。
这允许记录在何处做出决定,选择了哪种情况。 有助于解释程序行为,因为过了一段时间没有人会非常肯定正确的事情。
这里不是效率,而是清晰度。仍然可以使用有效的数据结构。例如,适当的地图。