我编写了导致NullPointerException的简短Java代码.有没有人对此有解释?码:
int val = 2;
Boolean result = (val == 0) ? false : ((val == 1) ? true : null);
Run Code Online (Sandbox Code Playgroud)
以下(简化版)代码将导致NullPointerException:
Object result = (false) ? false : (false ? true : null);
Run Code Online (Sandbox Code Playgroud)
但是这个:
int val = 2;
Boolean result = (val == 0) ? Boolean.FALSE : ((val == 1) ? true : null);
Run Code Online (Sandbox Code Playgroud)
还有这个:
Object result = (false) ? Boolean.FALSE : (false ? true : null);
Run Code Online (Sandbox Code Playgroud)
或这个:
Object result = (false) ? (Boolean)false : (false ? true: null); …Run Code Online (Sandbox Code Playgroud)