我是一个有编码的初学者,所以有人可以告诉我是否有可能在Java中做这样的事情,在一个无效的结果类型?
switch (if this != null {return this;}
else {return that;}) {
case "This": blah
break;
case"That": blah
break;
}
另外,有人能告诉我使用两个变量执行switch语句的最有效方法吗?谢谢! :)
答案 0 :(得分:8)
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);
}