本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
&& (AND) and || (OR) in Java IF statements
这是一个我可能早在几年前就已经知道答案的问题,但是如果我正在用Java编写具有if(x!= null && y == null && x.equals(z))之类的if语句,那么这是安全的? 我假设if语句的条件是从左到右解释的,因此从头检查x!= null可以确保在条件的x.equals(z)部分上不会引发(至少由x引发)空指针异常。 这个准确吗?
最好通过咨询JLS来检查此类情况。 它非常严格,精确,可以免费使用,与C ++不同。
@Sergey:但是在stackoverflow.com上询问并在2分钟内得到4个答案要容易得多。
是。 这称为短路逻辑:http://en.wikipedia.org/wiki/Short-circuit_evaluation。
就像@mellamokb说的是短路。
如果您有这样的比较,我只会添加:
if (str != null && str.equals("FINAL STRING") {...}
更好地使用:
if ("FINAL STRING".equals(str)) {...}
通常选择第一种方法,但条件应尽可能简单:)
简短:是的,这是正确的。 :)
简短的答案:您这样做很好。
答案很长:您这样做很好,因为Java使用了一种称为短路布尔评估的东西。 在这里阅读