打开if语句?

时间:2017-12-31 23:36:36

标签: java if-statement switch-statement

我是一个有编码的初学者,所以有人可以告诉我是否有可能在Java中做这样的事情,在一个无效的结果类型?

switch (if this != null {return this;}
            else {return that;}) {

    case "This": blah
        break;
    case"That": blah
        break;
}

另外,有人能告诉我使用两个变量执行switch语句的最有效方法吗?谢谢! :)

3 个答案:

答案 0 :(得分:8)

使用ternary operator

switch (this != null ? this : that) {
    ...
}

Optional班级:

switch (Optional.ofNullable(this).orElse(that)) {
    ...
}

答案 1 :(得分:3)

简单的答案:不做这样的事情。因为这样的代码很难阅读和维护。

如果有的话,做一些像

这样的事情
switch(computeLookupValue(whatever)) 

但你想用几行代码做很多事情是不好的做法。

然后还忘记了有关效率的部分。在Java中,您可以编写简单的代码来编写高效的代码,这些代码可以通过即时编译器为您进行优化。试着写" smart" Java源代码可以很快导致您阻止JIT完成其工作!

答案 2 :(得分:2)

如果直接使用if但使用三元运算符,则无法执行此操作:

String str = null;
String st = "foo";
switch (str != null ? str : st) {
    case "foo":
        System.out.println(st);
}