Tag: 求值

Java中的布尔表达式评估

我正在寻找一种相对简单(与编写解析器相比)的方法来评估Java中的布尔表达式,我不想使用JEP库。 我有一个String表达式,如: (x > 4 || x 6) ,我的目标是用值替换变量。 有没有办法评估这个表达式? 请记住,这可能是任何级别的深度,因此编写解析器将非常复杂。

当Java计算一个连词( && )时,如果exp1为false,它是否eval exp2?

我想知道是否保证在Java程序中,只要左边的表达式(exp1)评估为false,就不会计算连接右边的布尔表达式(上面的exp2)。 我想知道因为我有一个如下表达式: if (var != null && var.somePredicate()) // do something 如果Java在看到var为null之后不能保证停止评估(var != null && var.somePredicate()) ,那么它可能会尝试评估会引发NullPointerException的var.somePredicate() 。 所以我的问题是,Java在这方面是否保证了某种行为? 或者写起来会更安全 if (var != null) { if (var.somePredicate()) // do something }