使用三元运算符调用方法的 JAVA
我正在尝试使用 ?决定我想调用哪个方法,但我不需要分配变量。我的问题:有没有办法在不分配变量的情况下使用三元运算符?
(something i dont need) = (x == 1)? doThisMethod():doThatMethod()
而不是
if(x == 1) {
doThisMethod()
} else {
doThatMethod()
}
我正在尝试使用 ?决定我想调用哪个方法,但我不需要分配变量。我的问题:有没有办法在不分配变量的情况下使用三元运算符?
(something i dont need) = (x == 1)? doThisMethod():doThatMethod()
而不是
if(x == 1) {
doThisMethod()
} else {
doThatMethod()
}
这将不起作用,因为它不是三元运算符的预期用途。
如果你真的希望它是1行,你可以写:
if (x==1) doThisMethod(); else doThatMethod();
我怀疑这是否有效。JLS §15.25 对三元表达式的定义如下:
ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression ? Expression : ConditionalExpression
a本身并不是一个声明
。不过,它可以在其他各种地方使用,例如作业
:ConditionalExpression
AssignmentExpression:
ConditionalExpression
Assignment
Assignment:
LeftHandSide AssignmentOperator AssignmentExpression