我正在尝试使用电子邮件条件迭代一个表来检索表行中的所有记录。我收到此错误提示
byte checkCode = r.readByte(); // check code
System.out.println("checkCode is 0x: " + Integer.toHexString(checkCode));
这是我的尝试:
Type mismatch: cannot convert from element type User to Object[]
请如何检索上面的数组元素
答案 0 :(得分:3)
该消息告诉您需要知道的所有内容:
此代码:
for(Object[] row : adminList)
说:“我希望该List的每个成员都应该是'Object of array'的类型。”
这听起来有点不对劲。所以,你必须退后一步,重新考虑为什么你首先放下代码!
该列表已声明包含类用户的对象,因此使用它的直接方式是。
for (User user : adminList)
如果不你需要什么;那么,为什么你声明 adminList 属于List<User>
类型?
只是为了记录:这真的是一个非常基本的 java问题。如果你还不了解这些基本的东西,你应该先花一些时间在学习 java上。如果您不明白ClassCastException 意味着什么,那么使用像Hibernate这样的框架(具有巨大的复杂程度!)的绝对没有意义以及如何处理它。
换句话说:在尝试运行之前学会抓取!
答案 1 :(得分:2)
您获得了List<User>
,因此您必须使用循环中的用户对象:
List<User> adminList = _adminDao.getSingleUser(searchName);
for (User row: adminList) {
//Do anything with the user
}
BTW:_adminDao.getSingleUser不应该返回用户列表。
答案 2 :(得分:1)
首先,您要迭代列表,而不是对象数组。 需要正确的列表参考:
for (User row: adminList)
这可能会在adminList中获得一个名为row(每次迭代)的用户,这是User对象的集合。
其次,如果要获取索引,请使用法线。 (或同时,做)
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));
答案 3 :(得分:1)
似乎您正在尝试打印User对象中的所有成员变量。所以:
<VirtualHost *:80>
ServerAdmin support@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html/yourdomain.com/public_html/
<Directory "/var/www/html/yourdomain.com/public_html">
AllowOverride All
Require all granted
</Directory>
答案 4 :(得分: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中的每个元素执行代码。