如何将对象转换为布尔值?


Answers:


132

如果该对象实际上是一个Boolean实例,则只需对其进行转换:

boolean di = (Boolean) someObject;

显式强制转换将转换为Boolean,然后将原始值自动拆箱。或者,您可以明确地做到这一点:

boolean di = ((Boolean) someObject).booleanValue();

但是,如果someObject没有引用布尔值,您希望代码做什么?


1
没有它不是布尔型实例,而是值是true还是false
Ravi Gupta'2

3
我很好奇变量的类型是什么... :)
helios 2010年

13
假设可以使用字符串,则使用true / false:boolean b = Boolean.parseBoolean(String.valueOf(someObject)); 请注意,对于除“ true”(不区分大小写)以外的任何String值,此方法将返回false,因此,如果someObject为null,则将返回false。
亚当斯基

@Jon回答您在最后一行提出的问题,我们可以在将instanceOf方法强制转换为布尔值之前使用method。这不会产生强制转换异常。
vikiiii

@vikiiii:我知道的instanceof的,但是这是一个问题如何我们可以检查它-这不回答我提出的问题,这是需要的行为
乔恩·斯基特

34

假设yourObject.toString()返回“ true”或“ false”,则可以尝试

boolean b = Boolean.valueOf(yourObject.toString())

无法理解为什么需要toString()。如果不是字符串,那么它只是一个对象?
James P.

2
因为yourObject是Object类型的实例,并且valueOf方法接受String。
Neets

2
这可能是Boolean.parseBoolean为了避免对装箱和拆箱Boolean
Ben Lings
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.