我正在寻找缩短我的方法的可能性。
看起来像:
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 中没有初始化 map 的方法。
最佳答案
这看起来像“业务逻辑”——现实世界的案例。
使其具有声明性:作为数据结构/表格数据,甚至可能稍后与 boolean 逻辑一起在 XML 中定义。
然后“解释”数据。
这允许记录做出的决策、选择的案例。 有助于解释程序行为,因为一段时间后没有人会非常确定什么是正确的。
这里的问题不是效率,而是清晰度。仍然可以使用有效的数据结构。例如适当的 map 。
关于java - 缩短 switch case 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316399/