这是一个我应该知道多年前答案的问题,但如果我在Java中编写一个if语句,其中包含if(x!= null&& y == null&& x) .equals(z))这样安全吗?我假设if语句条件是从左到右解释的,因此检查x!= null是否开始将确保在条件的x.equals(z)部分上没有抛出空指针异常(至少是x)。这准确吗?
答案 0 :(得分:4)
答案 1 :(得分:1)
我只是补充说,如果你有这样的比较:
if (str != null && str.equals("FINAL STRING") {...}
更好地使用:
if ("FINAL STRING".equals(str)) {...}
第一种方式经常被选择,但条件应该尽可能简单:)
答案 2 :(得分:0)
简短的回答:你做得很好。
答案很长:你做得很好,因为Java使用了一种称为短路布尔评估的东西。阅读它here
答案 3 :(得分:0)
简短而简单:是的,这是正确的。 :)