2016-10-26 6 views
1

私はforループを反復しているうちにclasscast例外が発生しています。java.lang.Stringは、ループの繰り返し中に[Ljava.lang.Object]にキャストできません

これは私のコードです:以下

List<Object[]> objList = myDao.getList(bookId, bookName); 
for(Object[] t : objList) 
{  
    if(!myClass.isBlank((String)t[1])) 
    { 
     bookList.add(new book((String) t[0],(String) t[0])); 
    } 
} 

私は私のobjList

[Potter, GOT] 

例外で取得出力はループ

ため

に入っている間、java.lang.Stringでは、することはできません[Ljava.lang.Objectにキャスト

私はもう一度試しましたが、以下のように私のforループを変更することでしたが、それでもまだ動作しませんでした。

List<Object[]> objList = myManager.getList(bookId, bookName); 
String[] bookObj = new String[objList.size()]; 
for (int i = 0; i < objList.size(); i++) { 

    if(!myClass.isBlank((String)bookObj[i])){ 
     bookList.add(new SelectItem((String) bookObj[i],(String) bookObj[i])); 
    } 
} 

誰もが間違ってガイドしてください。

+6

を返していました言ったようにそれは 'myDao.getList(ように見える)' 'リスト'なく '一覧'を返します。 – Eran

+1

あなたはJon Skeetがあなたの投稿を編集したような幸運な人です! :D Eranが述べたように、daoメソッドgetList()の戻り値の型はStringでもかまいません。 –

答えて

0

ヒントとして@Eranに感謝します。

以下のようにして解決しました。 @EranはそれがList<String>

List<String> objList = myManager.getList(bookId, bookName); 
for(String t : objList) 
{  
    if(!StringUtil.isBlank((String)t)) 
    { 
     bookList.add(new book((String) t,(String) t)); 
    } 
} 
+0

どのようにコンパイルしましたか? 'getList'は生の型を返しますか?ヤック – ajb

+0

@ajb:生のタイプを返していました。上記のように修正しました。 – sTg

関連する問題