如何将Object转换为布尔值?

Rav*_*pta 74 java primitive casting

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

我尝试过如下,但它不起作用

boolean di = new Boolean(someObject).booleanValue();
Run Code Online (Sandbox Code Playgroud)

构造函数Boolean(Object)未定义

请指教.

Jon*_*eet 129

如果对象实际上是一个Boolean实例,那么只需转换它:

boolean di = (Boolean) someObject;
Run Code Online (Sandbox Code Playgroud)

显式转换将转换为Boolean,然后是原始值的自动取消装箱.或者您可以明确地这样做:

boolean di = ((Boolean) someObject).booleanValue();
Run Code Online (Sandbox Code Playgroud)

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

  • 假设true/false是你可以使用的字符串:boolean b = Boolean.parseBoolean(String.valueOf(someObject)); 请注意,对于除"true"之外的任何String值(不区分大小写),这将返回false,因此如果someObject为null,则返回false. (12认同)
  • 我很好奇变量的类型...... :) (3认同)
  • 那是什么类型的? (2认同)

chb*_*urd 34

假设yourObject.toString()返回"true"或"false",您可以尝试

boolean b = Boolean.valueOf(yourObject.toString())
Run Code Online (Sandbox Code Playgroud)

  • 因为yourObject是Object类型的实例,valueOf方法接受String. (2认同)
  • 这可能应该是`Boolean.parseBoolean`以避免装箱和取消装箱"布尔". (2认同)