Java &&(AND)和|| (OR)在IF语句中
我有以下代码:
if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){ partialHits.get(z).put(z, tmpmap.get(z));
}
partialHitsHashMap
在哪里。
如果第一个陈述为真会怎样? Java还会检查第二条语句吗?因为为了使第一条语句为真,所以HashMap不应包含给定的键,因此如果选中了第二条语句,则将获得NullPointerException
。
简单来说,如果我们有以下代码
if(a && b) if(a || b)
Java将在第一种情况下检查b是否a为false,a在第二种情况下是否为true?
回答:
不会被评估。这非常有用。例如,如果你需要测试String是否为null或为空,则可以编写:
if (str != null && !str.isEmpty()) { doSomethingWith(str.charAt(0));
}
或者,反过来
if (str == null || str.isEmpty()) { complainAboutUnusableString();
} else {
doSomethingWith(str.charAt(0));
}
如果我们在Java中没有“短路”,那么在上面的代码行中将会收到很多NullPointerExceptions。
以上是 Java &&(AND)和|| (OR)在IF语句中 的全部内容, 来源链接: utcz.com/qa/436470.html