java if语句如何处理空值?

java if语句如何处理空值?,java,jasper-reports,Java,Jasper Reports,在使用jasper soft reports时,我偶然发现了这种奇怪的行为,我想解释一下,因为我对Java知之甚少 基本上,当表达式: ($P{Parameter_name}!=0 || $P{Parameter_name}==null) ? true : false ->这返回false ($P{Parameter_name}==null || $P{Parameter_name}!=0) ? true : false ->这是真的 唯一的区别是方程式的顺序,但从逻辑上讲,它不应该造成差异

在使用jasper soft reports时,我偶然发现了这种奇怪的行为,我想解释一下,因为我对Java知之甚少

基本上,当表达式:

($P{Parameter_name}!=0 || $P{Parameter_name}==null)
? true : false
->这返回false

($P{Parameter_name}==null || $P{Parameter_name}!=0)
? true : false
->这是真的

唯一的区别是方程式的顺序,但从逻辑上讲,它不应该造成差异。 参数为
null


例如,我知道SQL不关心顺序,总是用这样一个简单的or语句来计算true。

如果参数为
null
,则在求值时会得到
NullPointerException

$P{Parameter_name}!=0
也许这个异常会阻止Jasper检查第二个条件

在第二个版本中,测试

$P{Parameter_name} == null
将被评估为true,这意味着

$P{Parameter_name} != 0

根本不会被评估(也不会提出NPE)

这不是Java代码,那么你为什么要关心Java做什么呢?除了Jasper没有向我返回任何错误,而是将其视为一个错误值,我不理解。