2016-09-28 81 views
0

我想通過電子郵件條件遍歷表來檢索錶行中的所有記錄。我得到這個錯誤提示類型不匹配:無法從元素類型轉換爲用戶到對象[]

Type mismatch: cannot convert from element type User to Object[] 

這是我的嘗試:

List<User> adminList = _adminDao.getSingleUser(searchName); 

    for (Object[] row: adminList) { 
     System.out.println(" ------------------- "); 
     System.out.println("first row: " + row[0]); 
     System.out.println("second row: " + row[1]); 
    } 

請我該如何找回上面數組元素

+0

嘗試這個辦法:對(用戶行:adminList) – Elgayed

回答

2

你得到一個List<User>,所以你必須在你的循環用戶對象的工作:

List<User> adminList = _adminDao.getSingleUser(searchName); 

for (User row: adminList) { 
//Do anything with the user 
} 

BTW:_adminDao.getSingleUser不應返回用戶列表。

+0

所以我可以檢索該行的各個元素 – Francis

+0

@Francis一個用戶是 – Jens

+0

一排我的意思是該行的各列 – Francis

3

的消息告訴你所有你需要知道:

此代碼:

for(Object[] row : adminList) 

說:「我期望該列表的每個成員應該是'對象數組'的類型。

這聽起來相當錯誤。所以,你必須退後一步,重新考慮爲什麼你放下這些代碼!

該列表已被聲明爲包含類用戶的對象,因此使用它的直接方法是。

for (User user : adminList) 

如果是你所需要的;那麼好吧,你爲什麼聲明adminListList<User>

而只是爲了記錄:這真的是一個非常基本的 java問題。如果你還不瞭解這些基本的東西,你應該花很多時間在學習 Java。有絕對如果你不明白什麼是ClassCastException 意味着以及如何處理它,沒有使用像Hibernate這樣的框架(它帶有一個巨大的複雜性!)。

換句話說:在試圖運行之前學會爬行!

1

首先你要迭代一個列表,而不是一個對象數組。 的爲需要正確的列表引用:

for (User row: adminList) 

這是有可能得到其中的用戶對象的集合adminList用戶稱爲行(每次迭代)。

二,如果你想獲得索引,使用正常的。(或同時,做一段時間)

for (int i=0; i< adminList.size(); i++) { 
    System.out.println(" ------------------- "); 
     System.out.println("row: " + adminList.get(i)); 
} 

或用foreach:如果

for (User row: adminList) { 
System.out.println("row: " + row); 
} 

而且要打印一些預定義的指標,你甚至都不需要循環!

System.out.println(" ------------------- "); 
System.out.println("first row: " + adminList.get(0)); 
System.out.println("second row: " + adminList.get(1)); 
0

你的循環應該想:

List<User> adminList = _adminDao.getSingleUser(searchName); 

    int i = 0; 
    for (User row: adminList) { 
     System.out.println(" ------------------- "); 
     System.out.println(i" row: " + row); 
     i++; 
    } 

這將執行代碼內環在adminList每個元素。

1

似乎您試圖在User對象中打印所有成員變量。所以:

for (User row: adminList) { 
     System.out.println(" ------------------- "); 
     System.out.println("first row: " + row.getFirstVariable()); 
     System.out.println("second row: " + row.getSecondVariable()); 
} 
相關問題