我想用?决定我想要调用哪种方法,但我不需要分配变量.我的问题:有没有办法使用三元运算符而不分配变量?
(something i dont need) = (x == 1)? doThisMethod():doThatMethod()
Run Code Online (Sandbox Code Playgroud)
代替
if(x == 1) {
doThisMethod()
} else {
doThatMethod()
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*lia 22
这不起作用,因为它不是三元运算符的预期用途.
如果你真的希望它是1行,你可以写:
if (x==1) doThisMethod(); else doThatMethod();
Run Code Online (Sandbox Code Playgroud)
我怀疑这是否有效.所述JLS§15.25定义三元表达如下:
ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression ? Expression : ConditionalExpression
Run Code Online (Sandbox Code Playgroud)
而a 本身ConditionalExpression并不是一个Statement.它可以用于其他各种地方,例如Assignment:
AssignmentExpression:
ConditionalExpression
Assignment
Assignment:
LeftHandSide AssignmentOperator AssignmentExpression
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10130 次 |
| 最近记录: |