&&
运算符是短路的,如果没有必要,它不会评估右手边。在这种情况下,有必要:
if(Check==null && Check.isEmpty()){
System.out.println("get Inside")
}
如果Check
是null
(就是这种情况),您将继续检查 之后的条件&&
,然后您会得到Check.isEmpty()
. 因为Check
is null
,这就像是null.isEmpty()
哪一个是 NEP。
为什么?
当两个表达式&&
之间存在时,如果第一个为假,则答案始终为假,不检查对方,但当第一个为 时true
,您必须继续检查对方才能知道是否所有表达式应该被评估为true
or false
。
但是当你有:
if(Check!=null && Check.isEmpty()){
System.out.println("get Inside")
}
然后将无法到达右侧,因为检查它是多余的。你已经得到了false
,如果你得到true
或false
在右边都没有关系,结果将是false
因为这是一个AND
(FALSE && WHATEVER = FALSE)。那为什么要检查呢?
此链接可能会对您有所帮助。
(我建议您遵循Java 命名约定并使变量以小写字母开头)。