2016-10-26 1 views
1

Я получаю исключение classcast, пока я повторяю цикл for.java.lang.String не может быть применен к [Ljava.lang.Object, а Iterating For Loop

Это мой код:

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] 

Exception при входе в цикл

java.lang.String не может быть литье в [Ljava.lang.Object

Что я пробовал снова, так это изменить мой цикл, как показано ниже, но он все еще не работал.

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

ты такой счастливый парень, что Джон Скит отредактировал твое сообщение. !! : D как упомянутый Эран, возвращаемый тип метода dao getList() может быть строкой. –

ответ

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

Смежные вопросы