【问题标题】:Quick question on If statements with multiple conditions [duplicate]关于具有多个条件的 If 语句的快速问题 [重复]
【发布时间】:2011-02-17 18:09:52
【问题描述】:

可能重复:
&& (AND) and || (OR) in Java IF statements

这是一个问题,我可能在几年前就应该知道答案,但是如果我在 Java 中编写一个 if 语句,其中包含 if(x != null && y == null && x.equals(z))这安全吗?我假设 if 语句条件是从左到右解释的,因此检查 if x != null 将确保不会在条件的 x.equals(z) 部分引发空指针异常(至少由 x 引发)。这准确吗?

【问题讨论】:

  • 这样的事情最好由consulting the JLS检查。它非常严格、精确并且可以免费获得,不像 C++。
  • @Sergey:但是在 stackoverflow.com 上提问要容易得多,并且在 2 分钟内得到 4 个答案。

标签: java conditional


【解决方案1】:

【讨论】:

    【解决方案2】:

    就像@mellamokb 说的那样是短路。

    如果你有这样的比较,我只会补充:

    if (str != null && str.equals("FINAL STRING") {...}
    

    更好的使用:

    if ("FINAL STRING".equals(str)) {...}
    

    第一种方式经常被选择,但条件应该尽可能简单:)

    【讨论】:

      【解决方案3】:

      简短的回答:你这样做很好。

      长答案:这样做很好,因为 Java 使用了称为短路布尔评估的东西。阅读它here

      【讨论】:

        【解决方案4】:

        简短而简单:是的,这是正确的。 :)

        【讨论】:

          猜你喜欢
          • 2016-12-13
          • 1970-01-01
          • 2014-10-20
          • 1970-01-01
          • 1970-01-01
          • 2023-03-31
          • 1970-01-01
          • 2012-09-02
          相关资源
          最近更新 更多