我在我们的代码库中找到了以下代码片段。这是广泛使用的代码,没有引起任何问题,我不知道为什么。

element = someBoolean ?
            element = parentElement :
            element;


第二行不应将element重置为空值或将其设置为parentElement后的其他内容

ETA:我想知道element = parentElement子句的返回值是什么,因为在那儿似乎没有任何返回值。我忘记了Java中有多个分配的概念,因此element只会被设置两次。

最佳答案

第二行不应该将元素重置为空值,或者
  设置为parentElement之后的内容


我不知道你为什么会这样想。整个语句的目的是可能将element重新分配给parentElement。该语句等效于:

element = someBoolean ?
            parentElement:
            element;


这是因为赋值语句(element = parentElement)具有RHS的值(即parentElement)。不过,我只是这样写:

if (someBoolean) {
    element = parentElement;
}

10-06 16:04