2016-09-28 82 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()); 
} 
相关问题