2013-08-02 26 views
-3

我從休眠本地查詢得到的數據,這是Object類型的,以 ,我需要轉換成布爾,我這樣做的方式..鑄造對象爲布爾引發異常

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

現在我需要將其設置成POJO有一個方法..

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

當我試圖設置成POJO它拋出exceptiion

b1.setActive(b); 

請指教

+1

什麼是例外?另外,'b1'是一個'Boolean',它沒有'setActive'方法。 –

回答

0

我想你只是簡單地讓你的變量錯了。您應該致電b.setActive(b1);。布爾對象沒有setActive方法,你可能在錯誤的對象上調用它。

如果您有投射問題,則在您調用該對象以鍵入Boolean之前調用其中的任何方法之前,將引發異常。

+0

對不起有一個錯字錯誤,現在請看看更新後的帖子 –

+0

好吧,在錯字修正後,我認爲最好讓我們知道你得到的例外是什麼。 :)不知道什麼可能是錯的。 – Ameen

0

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

Boolean類具有的booleanValue()methos返回布爾值。

確保objectboolean[]

+0

「b.booleanValue()」真的需要自動裝箱嗎?你應該儘量避免否定('if(x!= y){} else {}'),所以更可讀的方式可以是'b1.setActive(b == null?false:b);' – radimpe

0
  1. 使用的吸附材料(b.booleanValue())。
  2. 自動裝箱和拆箱爲null敏感
Boolean b = null; 
boolean p = b; //throws NPE