gpt4 book ai didi

java - `return || ` 如何成为返回对象的方法的有效返回语句?
转载 作者:行者123 更新时间:2023-11-29 04:14:55 25 4
gpt4 key购买 nike

我正在看书,看到这段代码:

public Animal getWinner(List<Animal> animals) {
return animals == null || animals.size() == 0 ? null : animals.get(0);
}

后一个表达式很好,因为它返回一个 Animal 或 null。前一个表达式令人费解,因为它只是一个 boolean 表达式。

我制作了一个测试类并调用了getWinner(null)。它返回了 null。据我所知,animals == null 为真,表达式会短路,我希望该方法返回 true 而不是 null.

这一行如何编译,甚至按预期工作?

最佳答案

这与 operator precedence 有关在 Java 中,哪个运算符( boolean 值或三元运算符)将首先执行。

三元具有较低的优先级,所以 将首先被评估,这意味着它看起来像这样带有括号:

return (animals == null || animals.size() == 0) ? null : animals.get(0);

所以整行的结果要么是return null,要么是return animals.get(0)

关于java - `return <boolean exp> || <Object exp>` 如何成为返回对象的方法的有效返回语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53027041/

25 4 0