How to cast Object to boolean?
如何将Java对象转换为布尔型原语
我尝试如下所示,但不起作用
1
| boolean di = new Boolean(someObject ). booleanValue(); |
The constructor Boolean(Object) is undefined
请指教。
如果该对象实际上是一个Boolean实例,则只需对其进行强制转换:
显式强制转换将转换为Boolean,然后将自动拆箱到原始值。 或者,您可以明确地做到这一点:
1
| boolean di = ((Boolean) someObject ). booleanValue(); |
如果someObject但是未引用布尔值,那么您希望代码做什么?
-
其不是布尔型实例,但其值为true或false
-
我很好奇变量是什么类型的... :)
-
假设可以使用字符串,则使用true / false:boolean b = Boolean.parseBoolean(String.valueOf(someObject));请注意,这对于除" true"(不区分大小写)以外的任何String值将返回false,因此,如果someObject为null,则将返回false。
-
@Jon回答您在最后一行提出的问题,我们可以在将instanceOf方法强制转换为Boolean之前使用它。这不会产生强制转换异常。
-
@vikiiii:我知道instanceof,但这就是我们如何检查它的问题-无法回答我所问的问题,这是所需的行为。
-
@Jon如果someObject虽未引用布尔值,则可以说是String .Ex:" true"。然后,我想将String解析为布尔值,并使用parseBoolean方法将字符串转换为Boolean。这能回答您的问题吗?如果没有,请回复并让我知道。
-
@vikiiii:好吧,它回答了部分问题。但是,如果值实际引用了Integer,它不会回答您要发生的事情。或一个按钮。或FileInputStream。当然我在问OP ...
假设yourObject.toString()返回" true"或" false",则可以尝试
1
| boolean b = Boolean. valueOf(yourObject. toString()) |
-
无法理解为什么需要toString()。如果它不是字符串,那么它只是一个对象?
-
因为yourObject是Object类型的实例,并且valueOf方法接受String。
-
可能应该是Boolean.parseBoolean,以避免对Boolean装箱和拆箱。