2015-04-27 18 views
3

当我试图赋予null为Boolean下面,我有一个NullPointerException。的Java:分配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; 

回答

2

我相信这是一些装箱/拆箱问题。分配Boolean.TRUEBoolean.FALSE

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

按预期工作。