【发布时间】:2019-04-01 07:05:17
【问题描述】:
我在看书,看到了这段代码:
public Animal getWinner(List<Animal> animals) {
return animals == null || animals.size() == 0 ? null : animals.get(0);
}
后一个表达式很好,因为它返回一个 Animal 或 null。前一个表达式令人费解,因为它只是一个布尔表达式。
我创建了一个测试类并调用了getWinner(null)。它返回了null。据我所知,animals == null 为真,表达式会短路,我希望该方法返回true 而不是null。
这一行如何编译,甚至按预期工作?
【问题讨论】:
-
哇,会员 8 年了,现在你问一个问题。你真的潜伏在阴影中:-)
-
绝对! 2026年见! ;)
标签: java return-type boolean-expression short-circuiting