使用三元运算符调用方法的 JAVA

2022-09-02 21:02:15

我正在尝试使用 ?决定我想调用哪个方法,但我不需要分配变量。我的问题:有没有办法在不分配变量的情况下使用三元运算符?

(something i dont need) = (x == 1)? doThisMethod():doThatMethod()

而不是

if(x == 1) {
    doThisMethod()
} else {
    doThatMethod()
}

答案 1

这将不起作用,因为它不是三元运算符的预期用途。

如果你真的希望它是1行,你可以写:

if (x==1) doThisMethod(); else doThatMethod();

答案 2

我怀疑这是否有效。JLS §15.25 对三元表达式的定义如下:

ConditionalExpression:
    ConditionalOrExpression
    ConditionalOrExpression ? Expression : ConditionalExpression

a本身并不是一个声明。不过,它可以在其他各种地方使用,例如作业ConditionalExpression

AssignmentExpression:
    ConditionalExpression
    Assignment

Assignment:
    LeftHandSide AssignmentOperator AssignmentExpression

推荐