Java:NullPointerException在将null赋值给布尔值时

Java:NullPointerException在将null赋值给布尔值时,java,nullpointerexception,Java,Nullpointerexception,当我尝试如下所示将null赋值给Boolean时,我得到了一个NullPointerException String strA = "something neither true nor false"; Boolean a = "true".equals(strA) ? true : "false".equals(strA) ? false : null; 我不知道为什么会发生这种情况,因为像下面这样的另一个案例起了作用 Boolean a = null; Boolean a = "true"

当我尝试如下所示将null赋值给Boolean时,我得到了一个NullPointerException

String strA = "something neither true nor false";
Boolean a = "true".equals(strA) ? true : "false".equals(strA) ? false : null;
我不知道为什么会发生这种情况,因为像下面这样的另一个案例起了作用

Boolean a = null;
Boolean a = "true".equals(strA) ? true : null;

我认为这是一些装箱/拆箱问题。分配
布尔值.TRUE
布尔值.FALSE

Boolean a = "true".equals(strA) 
             ? Boolean.TRUE 
             : ("false".equals(strA) ? Boolean.FALSE : null);
一切正常