【发布时间】:2010-02-05 10:47:01
【问题描述】:
如何将 Java 对象转换为布尔原语
我尝试了下面的方法,但它不起作用
boolean di = new Boolean(someObject).booleanValue();
构造函数 Boolean(Object) 未定义
请指教。
【问题讨论】:
如何将 Java 对象转换为布尔原语
我尝试了下面的方法,但它不起作用
boolean di = new Boolean(someObject).booleanValue();
构造函数 Boolean(Object) 未定义
请指教。
【问题讨论】:
如果对象实际上是一个Boolean 实例,那么只需转换它:
boolean di = (Boolean) someObject;
显式转换将转换为Boolean,然后自动取消装箱到原始值。或者你可以明确地这样做:
boolean di = ((Boolean) someObject).booleanValue();
如果someObject 不引用布尔值,您希望代码做什么?
【讨论】:
instanceOf 方法。这不会给出转换异常。
假设yourObject.toString()返回“true”或“false”,你可以试试
boolean b = Boolean.valueOf(yourObject.toString())
【讨论】:
Boolean.parseBoolean 以避免装箱和拆箱 Boolean。
使用条件运算符“?”像下面这样:
int a = 1; //in case you want to type 1 or 0 values in the constructor call
Boolean b; //class var.
b=(a>0?true:false); //set it in the constructor body
【讨论】:
int 不是对象类型,当然也不是 arbitrary 对象类型,2) 这不是强制转换。真正的问题是最初的问题没有意义,OP从来没有费心澄清它。