我是一个有编码的初学者,所以有人可以告诉我是否有可能在Java中做这样的事情,在一个无效的结果类型?
switch (if this != null {return this;}
else {return that;}) {
case "This": blah
break;
case"That": blah
break;
}
另外,有人能告诉我使用两个变量执行switch语句的最有效方法吗?谢谢! :)
switch (this != null ? this : that) {
...
}
或者Optional类:
switch (Optional.ofNullable(this).orElse(that)) {
...
}
简单的非答案:不做这样的事情。因为这样的代码很难阅读和维护。
如果有的话,做一些类似的事情
switch(computeLookupValue(whatever))
但是你想用几行代码做很多事情是不好的做法。
然后还忘记了有关效率的部分。在Java中,您可以编写简单的代码来编写高效的代码,这些代码可以通过即时编译器为您进行优化。尝试编写“智能”Java源代码会很快导致您阻止JIT完成其工作!
你不能直接使用if
但使用三元运算符:
String str = null;
String st = "foo";
switch (str != null ? str : st) {
case "foo":
System.out.println(st);
}