简短的if语句中的Java运行方法

简短的if语句中的Java运行方法,java,if-statement,Java,If Statement,是否有任何方法可以运行void方法(简称if语句)?例如,如果myValue设置为true,我想修改myList(它是类字段) 它(如果myMethod返回列表)适用于: 是否可以像这样运行它(如果myMethod无效): 然后仅在myMethod中修改myList?不,您不能。三元运算符b?x:y(其中b、x和y是语句)计算结果为某物 b必须计算为布尔值 x必须计算为一个值(原语或对象) y必须计算为与x 语句作为一个整体计算为与x和y类型相同的值 我想你可以想象一种语言,当x和y的计算结

是否有任何方法可以运行void方法(简称if语句)?例如,如果
myValue
设置为
true
,我想修改
myList
(它是类字段)

它(如果
myMethod
返回列表)适用于:

是否可以像这样运行它(如果
myMethod
无效):


然后仅在
myMethod
中修改
myList

不,您不能。三元运算符
b?x:y
(其中b、x和y是语句)计算结果为某物

  • b
    必须计算为布尔值
  • x
    必须计算为一个值(原语或对象)
  • y
    必须计算为与
    x
  • 语句作为一个整体计算为与
    x
    y
    类型相同的值
我想你可以想象一种语言,当
x
y
的计算结果不等于某个值时,语句
b?x:y
也不会计算为某个值。在那种语言中,
r=b?当
r=x
r=y
是非法语句时,x:y
将是非法语句

但是Java不是那种语言。在Java中,三元运算符总是必须返回某些内容(即使不使用结果),因此它的第二个两个操作数也必须返回

将三元运算符称为“short if语句”是不正常的


在您的用例中,使用
if
else

不,你不能。三元运算符
b?x:y
(其中b、x和y是语句)计算结果为某物

  • b
    必须计算为布尔值
  • x
    必须计算为一个值(原语或对象)
  • y
    必须计算为与
    x
  • 语句作为一个整体计算为与
    x
    y
    类型相同的值
我想你可以想象一种语言,当
x
y
的计算结果不等于某个值时,语句
b?x:y
也不会计算为某个值。在那种语言中,
r=b?当
r=x
r=y
是非法语句时,x:y
将是非法语句

但是Java不是那种语言。在Java中,三元运算符总是必须返回某些内容(即使不使用结果),因此它的第二个两个操作数也必须返回

将三元运算符称为“short if语句”是不正常的


在您的用例中,使用
if
else

。Java语言不允许这样做。来自Java语言规范:

这是第二个或第三个的编译时错误 操作数表达式是对void方法的调用


。Java语言不允许这样做。来自Java语言规范:

这是第二个或第三个的编译时错误 操作数表达式是对void方法的调用


为什么不直接执行显而易见的和
if(yourconment){runWhateverCodeYouLike();}
?三元运算符(
cond?value1:value2
)不是“短if语句”。它是一个运算符,用于预期特定类型表达式的上下文中。
myMethod()
返回什么?在那个表达式中使用它的结果有意义吗?注意,语法中有一个问号。这种做法会导致代码混淆,一个简单的旧的
if
将更具可读性,并且与ternaly一样短。为什么不呢?为什么不做显而易见的和
if(yourcondition){runWhateverCodeYouLike();}
?三元运算符(
cond?value1:value2
)不是“short if statement”。它是一个运算符,用于预期的特定类型表达式的上下文中。什么是
myMethod()
return?在该表达式中使用其结果有意义吗?请注意,语法中包含问号。这种做法将导致代码混淆,一个简单的旧
if
将更具可读性,并且尽可能短,为什么不呢?来源:来源:
mylist = myValue ? myMethod() : myList;
myValue ? myMethod() : ;