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

Java 如何将对象强制转换为布尔值?,java,casting,primitive,Java,Casting,Primitive,如何将Java对象强制转换为布尔基元 我试过像下面这样,但不起作用 boolean di = new Boolean(someObject).booleanValue(); 构造函数布尔值(对象)未定义 请告知。如果对象实际上是一个布尔实例,则只需将其强制转换为: boolean di = (Boolean) someObject; 显式转换将转换为布尔值,然后自动取消绑定到原语值。或者,您可以明确地这样做: boolean di = ((Boolean) someObject).boole

如何将Java对象强制转换为布尔基元

我试过像下面这样,但不起作用

boolean di = new Boolean(someObject).booleanValue();
构造函数布尔值(对象)未定义

请告知。

如果对象实际上是一个
布尔实例,则只需将其强制转换为:

boolean di = (Boolean) someObject;
显式转换将转换为
布尔值
,然后自动取消绑定到原语值。或者,您可以明确地这样做:

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

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

假设您的object.toString()返回“true”或“false”,您可以尝试

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

不,它不是布尔实例,但其值为true或false我很好奇变量是什么类型的…:)假设true/false是可以使用的字符串:boolean b=boolean.parseBoolean(String.valueOf(someObject));请注意,对于除“true”(不区分大小写)之外的任何字符串值,这将返回false,因此如果someObject为null,则将返回false。@Jon回答您在最后一行中提出的问题,在将其转换为布尔值之前,我们可以使用
instanceOf
方法。这不会给出转换异常。@Vikiii:我知道instanceOf,但这是我们如何检查它的问题——这并没有回答我所问的问题,这是我们想要的行为。如果它不是一个字符串,那么它只是一个对象?因为yourObject是object类型的实例,valueOf方法接受一个字符串。这可能应该是
Boolean。parseBoolean
以避免装箱和取消装箱
Boolean