2016-01-20 162 views
-1

我注意到一个问题,java.lang.Boolean类,它无法解析空值。我知道它有静态方法parseBoolean,但由于它是签名状态,它只接受String而不是Objectjava解析布尔值,可能为null布尔

换句话说,它具有以下特征:

public static boolean parseBoolean(String s) 

但不是:

Boolean.parseBoolean(Object) 

什么是检查一个布尔值,而不落在NullPointerException异常的最好方法?

+2

你想做什么?将一个'Boolean'(即true,false或null)转换为'boolean'?如果是这样,你必须决定你是否希望空值是真或假。 – immibis

+0

看看[this](http://stackoverflow.com/questions/11185321/when-should-null-values-of-boolean-be-used)有帮助。 –

+0

你认为'parseBoolean(null)'只适用于'parseBoolean(Object)'吗?如果不是,你希望你的对象被解析为“布尔”? – steffen

回答

0

您可以将其与Boolean.TRUEBoolean.FALSE进行比较。例如:

if (Boolean.TRUE == Box.modeled()) { //do somthing }

+3

进行比较,这实际上是不好的,因为从技术上讲,您可以创建新的布尔对象:Boolean b = new Boolean(true); b!= Boolean.TRUE – AdamSkywalker

+0

所以......你在问自己的同一时刻回答自己的问题? – Stultuske

+1

这也不能回答你的问题 – AdamSkywalker

2

尝试这一方法: Boolean.TRUE.equals(yourObj);