日期:2014-05-17  浏览次数:20857 次

List<object[]>转换为List<User>的问题?
话说遍历object强制转换为User就可以了。。但是我这个强转报错。。难道是我这个User和其他有实体关联的原因吗?求指教。。User和部门Department ,角色role 都有关联。。
List<object[]>长这个样
[
[100, a, wl, 81dc9bdb52d04dc20036dbd8313ed055, 女, null, null, null, null],
[101, b, admin, 21232f297a57a5a743894a0e4a801fc3, 男, null, null, null, null], 
[102, c, li, 81dc9bdb52d04dc20036dbd8313ed055, 男, 12113131, , , 1], 
null, null, null, null, null, null, null
]
java

------解决方案--------------------
这个没试过,顶一下!
------解决方案--------------------
不过,从你数据来看强转肯定是不行的,你应该写代码转。
------解决方案--------------------
List<User>  你的User 应该也是数组吧。
------解决方案--------------------
引用:
User是实体对象。。。从数据库得到的是Object数组。。要把Object数组对象转换为User对象。。遍历Object 对象 再强转为user行不通。
for(int i = 0 ;i<list.size;i++){
Object ob = list.get(i);
User user = (User)ob;//这样强转行不通

}

可能是我User里关联其它实体的原因吧
User的属性:
Long userId;
Depratment department;
Set<Role> roles;
String userName;
String loginName;
......
很明显你List<object[]>这个List取出来的是个object[]数组,数组怎么可能转化为User对象呢。应该是先从List<object[]>中取出object[],然后遍历object[]数组,将object[]数组中的object转化为User对象。
------解决方案--------------------
数组转单体肯定报错啊。
------解决方案--------------------
楼主,既然取出的是List<object[]>那么里面就是Object对象的数组,直接转成user对象,显然是不对的。

建议在数据库查询的时候,对于获取到的数据,直接组装成user对象并add到List中,而不是生成Object[]然后add到List。
最后方法返回List<User>.

希望对你有用
------解决方案--------------------
引用:
Quote: 引用:

User是实体对象。。。从数据库得到的是Object数组。。要把Object数组对象转换为User对象。。遍历Object 对象 再强转为user行不通。
for(int i = 0 ;i<list.size;i++){
Object ob = list.get(i);
User user = (User)ob;//这样强转行不通

}

可能是我User里关联其它实体的原因吧
User的属性:
Long userId;
Depratment department;
Set<Role> roles;
String userName;
String loginName;
......
很明显你List<object[]>这个List取出来的是个object[]数组,数组怎么可能转化为User对象呢。应该是先从List<object[]>中取出object[],然后遍历object[]数组,将object[]数组中的object转化为User对象。


首先把这个问题解决