java解析布尔值,该值可能为空或布尔值

java解析布尔值,该值可能为空或布尔值,java,boolean,Java,Boolean,我注意到类有一个问题,它不能解析空值。我知道它有静态方法,但它的签名声明它只接受字符串,而不接受对象 换句话说,它有以下签名: public static boolean parseBoolean(String s) 但不是: Boolean.parseBoolean(Object) 检查布尔值而不出现NullPointerException的最佳方法是什么?您可以将其与布尔值.TRUE或布尔值.FALSE进行比较。例如: if(Boolean.TRUE==Box.modeled()){ /

我注意到类有一个问题,它不能解析空值。我知道它有静态方法,但它的签名声明它只接受
字符串
,而不接受
对象

换句话说,它有以下签名:

public static boolean parseBoolean(String s)
但不是:

Boolean.parseBoolean(Object)

检查布尔值而不出现NullPointerException的最佳方法是什么?

您可以将其与
布尔值.TRUE
布尔值.FALSE
进行比较。例如:

if(Boolean.TRUE==Box.modeled()){
//干坏事
}

试试这种方法:

Boolean.TRUE.equals(yourObj);

如果您希望解析返回
true
false
null
作为
Boolean
对象,请查看Apache Commons Lang。
BooleanUtils
有一个线性函数正好可以实现这一点


你想干什么?将
布尔值
(为真、假或空)转换为
布尔值
?如果是这样,您必须决定是否希望null为true或false。请查看是否有帮助。您是否认为,
parseBoolean(null)
仅适用于
parseBoolean(Object)
?如果不是,您希望如何将对象解析为
布尔值
?您是如何在NullPointerException上失败的?我从一个对象实体收到一个字段,该字段必须是布尔值(因为它是实体),null当然是false。因此,我认为最好的答案就是将它与布尔值进行比较。这实际上是不好的,因为从技术上讲,你可以创建新的布尔对象:布尔值b=new Boolean(真);b!=Boolean.TRUEso。。。您在提问的同时回答了自己的问题?而且这并没有回答您的问题。您可能希望
null
。这个问题说的是进入
Boolean
而不是
Boolean
,对于其他只需要原语的人仍然有用
BooleanUtils.toBooleanObject(null) == null
BooleanUtils.toBooleanObject("true") == true
BooleanUtils.toBooleanObject("false") == false
BooleanUtils.toBooleanObject("YES") == true
BooleanUtils.toBooleanObject("nO") == false