打开if语句?

问题描述 投票:4回答:3

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

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

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

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

java if-statement switch-statement
3个回答
8
投票

使用ternary operator

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

或者Optional类:

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

3
投票

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

如果有的话,做一些类似的事情

switch(computeLookupValue(whatever)) 

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

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


2
投票

你不能直接使用if但使用三元运算符:

String str = null;
String st = "foo";
switch (str != null ? str : st) {
    case "foo":
        System.out.println(st);
}
© www.soinside.com 2019 - 2024. All rights reserved.