【发布时间】:2012-03-15 18:04:07
【问题描述】:
我想知道是否可以保证在 Java 程序中,只要左侧的表达式 (exp1) 评估为 false,就不会评估连接右侧的布尔表达式(上面的 exp2)。我想知道,因为我有如下表达式:
if (var != null && var.somePredicate())
// do something
如果 Java 在看到 var 为 null 后不能保证停止评估 (var != null && var.somePredicate()),那么它可能会尝试评估 var.somePredicate(),这将引发 NullPointerException。
所以我的问题是,Java 在这方面是否保证某种行为?还是写起来更安全
if (var != null)
{
if (var.somePredicate())
// do something
}
【问题讨论】:
标签: java conditional boolean expression evaluation