Pav*_*kin 7 java null if-statement nullpointerexception
为什么此代码返回错误:java.lang.NullPointerException
Object obj = null;
Long lNull = null;
Long res = obj == null ? lNull : 10L;
Run Code Online (Sandbox Code Playgroud)
但是以下方式可以正常运行:
Object obj = null;
Long res = obj == null ? null : 10L;
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,编译器可以推断出null必须是一个Long类型.在第一种情况下,它没有 - 并假设表达式返回a long.你可以看到这种情况(即修复它),如,
Long res = obj == null ? lNull : (Long) 10L;
Run Code Online (Sandbox Code Playgroud)
它不会产生NullPointerException.
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |