我编写了导致 NullPointerException 的简短 Java 代码。有人对此有解释吗?代码:
int val = 2;
Boolean result = (val == 0) ? false : ((val == 1) ? true : null);
以下(简化版)代码也会导致 NullPointerException:
Object result = (false) ? false : (false ? true : null);
但是这个:
int val = 2;
Boolean result = (val == 0) ? Boolean.FALSE : ((val == 1) ? true : null);
和这个:
Object result = (false) ? Boolean.FALSE : (false ? true : null);
或这个:
Object result = (false) ? (Boolean)false : (false ? true: null);
不是吗?