Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 缩短开关盒的方法_Java - Fatal编程技术网

Java 缩短开关盒的方法

Java 缩短开关盒的方法,java,Java,我正在寻找缩短我的方法的可能性 它看起来像: 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

我正在寻找缩短我的方法的可能性

它看起来像:

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();
}
公共静态可选(int i){
开关(一){
案例1:
返回可选的.of(_strArray[0]);
案例2:
返回可选。of(_strArray[1]);
案例6:
如果(bool)
返回可选。of(_strArray[2]);
案例7:
如果(!bool)
返回可选。of(_strArray[3]);
案例9:
如果(bool)
返回可选。of(_strArray[3]);
案例123:
如果(!bool)
返回可选。of(_strArray[4]);
案例154:
如果(bool)
返回可选。of(_strArray[4]);
//…等等(很多案例)
默认值:返回可选的.empty();
}
如何缩短方法?在Java8中有没有可能?
一个想法是使用
映射
,但在Java 8中没有初始化映射的方法。

您可以使用guava的:

Map left=ImmutableMap.of(1,“a”,2,“b”,3,“c”);
您可以使用番石榴:

Map left=ImmutableMap.of(1,“a”,2,“b”,3,“c”);
看起来像“业务逻辑”——真实世界的案例

使其具有声明性:作为数据结构/表格数据,以后甚至可以用XML和布尔逻辑一起定义

然后“解释”数据

这允许记录做出的决定、选择的案例。 有助于解释程序行为,因为一段时间后,没有人会非常确定什么是正确的

这里的情况不是效率,而是清晰。仍然可以使用有效的数据结构。例如,在适当的情况下使用映射。

看起来像“业务逻辑”——真实世界的案例

使其具有声明性:作为数据结构/表格数据,以后甚至可以用XML和布尔逻辑一起定义

然后“解释”数据

这允许记录做出的决定、选择的案例。 有助于解释程序行为,因为一段时间后,没有人会非常确定什么是正确的


这里的情况不是效率,而是清晰。仍然可以使用有效的数据结构。例如,在适当的情况下可以使用映射。

注意,在
if
情况下,您应该
中断
,否则下一个开关情况将继续执行!返回应该结束方法,不是吗?如果
if
条件评估评估为
false
…但在这种情况下就可以了。“在Java 8中没有初始化映射的方法”什么?请注意,在
if
案例之后,您应该
中断
,否则下一个开关案例将继续执行!返回应该结束methode,不是吗?如果
if
条件的计算结果为
false
,则不会出现这种情况。在Java 8中没有初始化映射的方法什么?谢谢,我是用自己的数据结构实现的。谢谢,我是用自己的数据结构实现的。
Map<Integer, String> left = ImmutableMap.of(1, "a", 2, "b", 3, "c");