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