Jos*_*bel 0 java null nullpointerexception
我有这个if语句
if((check1==null||!check1.isSolid())&&(check2==null)||!check2.isSolid())
Run Code Online (Sandbox Code Playgroud)
它抛出一个空指针异常,因为check1或check2为空,但我不明白它为什么这样做,因为我在访问对象之前检查null条件,如果对象为null,为什么java麻烦检查isSolid因为它本来是真的.
你搞砸了你的括号.Java会将您的语句组合在一起,如下所示:
((check1 == null || !check1.isSolid()) && check2 == null) || !check2.isSolid()
Run Code Online (Sandbox Code Playgroud)
如果check1是null和check2,是null,第一个语句将评估为true.当你到第二条语句的举动,因为出现该问题的check2就是null,check2.isSolid()将通过NullPointerException.
将括号更改为
(check1 == null || !check1.isSolid()) && (check2 == null || !check2.isSolid())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |