Java: boolean 表达式中的短路评估

标签 java

我想知道如果一个变量为空,并且在 boolean 条件下,对该空变量调用一个方法,会发生什么。会抛出异常吗?

MyObj chair = null
chair = getSpecialMethod();
if(chair != null && chair.size()){
  ....
}

如果chair,情况会怎样?为 null 时,即使之前检查了空值,也会抛出异常 chair.size()被称为?

最佳答案

不,当 chairnull 时,条件的第二部分不会被评估,因为第一部分为 false,因此 >NullPointerException 不会抛出。

来自部分15.23. Conditional-And Operator &&在 Java 语言规范中:

The conditional-and operator && is like & (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is true.

关于Java: boolean 表达式中的短路评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17155736/

相关文章:

Java If 循环未执行 : Scanner

java - 查找图中所有可能的节点组合

java - 无法解析 com.google.cloud.ServiceOptions$Builder 类型。它是从所需的 .class 文件间接引用的

java - 我们可以在我的应用程序中显示设备存储中的 xls 文件吗

java - 谷歌地图 Android 缩放到国家

java 抛出异常 java.lang.IndexOutOfBoundsException :

java - 线程之间的通信

java - 这段反射代码有什么错误?

java - 没有找到适合 ProductoExtranjero 的构造函数

java - 如何通过Fragment的Activity刷新Fragment的内容?