将对象转换为布尔值抛出异常

时间:2013-08-02 04:34:26

标签: java boolean

我从hibernate本机查询获取数据,并且是Object类型的数据 我需要转换为布尔值,我这样做..

Boolean b = ((java.lang.Boolean) ((Object[]) object)[++i]);

现在我需要将它设置为pojo,有一个方法为..

public void setActive(boolean active)
 { this.active = active; }

当我试图进入pojo时,它正在抛出一个异常

 b1.setActive(b);

请告知

3 个答案:

答案 0 :(得分:0)

我认为你只是让你的变量错了。你应该致电b.setActive(b1);。 Boolean对象没有setActive方法,你可能在错误的对象上调用它。

如果遇到强制转换问题,则在调用对象之前将对象强制转换为类型为Boolean时会抛出异常。

答案 1 :(得分:0)

使用b1.setActive(b!=null?b.booleanValue():false)

Boolean类有booleanValue()方法,返回布尔值。

确保objectboolean[]

答案 2 :(得分:0)

  1. 使用getter(b.booleanValue())。
  2. 自动装箱和拆箱是无效的
  3. Boolean b = null;
    boolean p =  b; //throws NPE