在迭代For循环时,不能将java.lang.String强制转换为[Ljava.lang.Object

时间:2016-10-26 05:52:27

标签: java for-loop classcastexception

我在迭代for循环时遇到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]

中输入的内容
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]));
    }
}

输入循环

时出现异常
  

java.lang.String无法强制转换为[Ljava.lang.Object

我再次尝试的是改变我的for循环如下,但它仍然没有用。

If dataset Is Nothing Then
    Set dataset = Workbooks.Open("C:\Users\Ken\Desktop\Df.xlsx")
Else
    Set dataset = Workbooks("Df.xlsx")
End If

任何人都可以指导什么错误。

1 个答案:

答案 0 :(得分: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));
    }
}